如何确定iOS应用是否已连接到特定的WiFi网络?

时间:2019-04-30 06:21:30

标签: ios react-native

我正在开发一个React Native应用程序,以在用户接近办公室时自动为他们计时。

我打算使用WiFi作为验证用户是否在该位置的方法。 MAC地址应该是唯一且固定的标识符,可以验证用户是否在此处。

如果使用SSID / wifi网络名称,则用户可以在家中更改其名称以匹配办公室之一。

从这里开始,似乎不再可行了? How can I programmatically get the MAC address of an iphone

如果出于安全考虑,无法从iOS中的应用获取MAC地址,我有什么方法可以实现?要正确识别它所连接的特定wifi网络?

1 个答案:

答案 0 :(得分:0)

if let interface = CNCopySupportedInterfaces() {
    for i in 0..<CFArrayGetCount(interface) {
      let interfaceName: UnsafeRawPointer = CFArrayGetValueAtIndex(interface, i)
      let rec = unsafeBitCast(interfaceName, to: AnyObject.self)
      if let unsafeInterfaceData = CNCopyCurrentNetworkInfo("\(rec)" as CFString), let interfaceData = unsafeInterfaceData as? [String : AnyObject] {
        // connected wifi
        print("BSSID: \(interfaceData["BSSID"]), SSID: \(interfaceData["SSID"]), SSIDDATA: \(interfaceData["SSIDDATA"])")
      } else {
        // not connected wifi
      }
    }
  }

P.S。我从iOS get current wlan network name