gpt4 book ai didi

swift - iOS VPN 按需规则

转载 作者:行者123 更新时间:2023-11-28 05:46:43 35 4
gpt4 key购买 nike

我想在 ios 中为 VPN 连接创建一个 onDemandRule

要求如下。

如果蜂窝网络和 wifi 都可用和 wifi ssid =“ABC”而不是只有 VPN 会运行,否则它应该停止。

我试过遵循 OnDemandRule

             let onDemandRule = NEOnDemandRuleConnect()
onDemandRule.interfaceTypeMatch = .wiFi
onDemandRule.ssidMatch = ["ABC"]

let onDemandRule1 = NEOnDemandRuleConnect()
onDemandRule1.interfaceTypeMatch = .cellular
self.vpnManager.isOnDemandEnabled = true

let onDemandRule2 = NEOnDemandRuleDisconnect()
onDemandRule2.interfaceTypeMatch = .any

self.vpnManager.onDemandRules = [onDemandRule, onDemandRule1, onDemandRule2]

只要连接到名为 ABC 的 wifi,它就会工作

但如果我关闭蜂窝数据,它不会断开连接。有人可以让我知道我在这里做错了什么。

最佳答案

您应该像阅读一组防火墙规则一样阅读规则,NEVPNManager 遍历规则列表并遵循第一个适用的规则。在您的示例中,当您关闭蜂窝数据时,它将评估规则 1:wifi + SSID“ABC”。如果该规则满足,即您连接到 WiFi SSID“ABC”,则 vpn 将被连接。如果没有,NEVPNManager 将执行下一条规则。

如果您关闭蜂窝网络,第一条规则仍然适用。 (您仍然可以使用 WiFi 连接)。 NEVPNManager 无法区分蜂窝网络的开/关。它只能区分使用哪个接口(interface):蜂窝、WiFi 或任何接口(interface)。

关于swift - iOS VPN 按需规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54402396/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com