类似问题:检查设备是否连接VPN
我无法编辑这个问题,这就是为什么我由于某些问题再次询问它。
当 VPN 连接时,我只能找到 `en0`。
key.contains("tap") || key.contains("tun") || key.contains("ppp") || key.contains("ipsec")
https://stackoverflow.com/a/53724982/22000500
我尝试了上面的解决方案,它给了我这样的输出。
Printing description of scopes:
▿ 1 element
▿ 0 : 2 elements
- key : "en0"
▿ value : 2 elements
▿ 0 : 2 elements
- key : ExceptionsList
▿ value : 2 elements
- 0 : *.local
- 1 : ******
▿ 1 : 2 elements
- key : FTPPassive
- value : 1
还有其他方法可以查明 VPN 是否已连接吗?
你可以试试这个代码。
import SystemConfiguration
func isVPNActive() -> Bool {
guard let cfDict = CFNetworkCopySystemProxySettings() else { return false }
let nsDict = cfDict.takeRetainedValue() as NSDictionary
if let scopes = nsDict["__SCOPED__"] as? [String: Any] {
for key in scopes.keys {
if key.contains("tap") || key.contains("tun") || key.contains("ppp") || key.contains("ipsec") || key.contains("utun") {
return true
}
}
}
return false
}