我正在开发一个React Native应用程序,以在用户接近办公室时自动为他们计时。
我打算使用WiFi作为验证用户是否在该位置的方法。 MAC地址应该是唯一且固定的标识符,可以验证用户是否在此处。
如果使用SSID / wifi网络名称,则用户可以在家中更改其名称以匹配办公室之一。
从这里开始,似乎不再可行了? How can I programmatically get the MAC address of an iphone
如果出于安全考虑,无法从iOS中的应用获取MAC地址,我有什么方法可以实现?要正确识别它所连接的特定wifi网络?
答案 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
}
}
}