检查设备是否已连接VPN

问题描述 投票:0回答:1

类似问题:检查设备是否连接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 是否已连接吗?

ios swift xcode vpn
1个回答
0
投票

你可以试试这个代码。

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
}
© www.soinside.com 2019 - 2024. All rights reserved.