在某些需求下,可能会让我们采集用户手机的ip 或Wifi 信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| //Swift 获取wifi的名字 import SystemConfiguration private func getUsedSSID() -> String{ let interfaces = CNCopySupportedInterfaces() var ssid = "" if interfaces != nil { let interfacesArray = CFBridgingRetain(interfaces) as! [AnyObject] if interfacesArray.count > 0 { let interfaceName = interfacesArray[0] as! CFString let ussafeInterfaceData = CNCopyCurrentNetworkInfo(interfaceName) if (ussafeInterfaceData != nil) { let interfaceData = ussafeInterfaceData as! [String: Any] ssid = interfaceData["SSID"]! as! String // let data = interfaceData["SSIDDATA"] as! Data // let str = String(data: data, encoding: String.Encoding.utf8) // print(str ?? "无") } } } return ssid }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| //ip地址 class func GetIPAddresses() -> String? { var addresses = [String]() var ifaddr : UnsafeMutablePointer<ifaddrs>? if getifaddrs(&ifaddr) == 0 { var ptr = ifaddr while (ptr != nil) { let flags = Int32(ptr!.pointee.ifa_flags) var addr = ptr!.pointee.ifa_addr.pointee if (flags & (IFF_UP|IFF_RUNNING|IFF_LOOPBACK)) == (IFF_UP|IFF_RUNNING) { if addr.sa_family == UInt8(AF_INET) || addr.sa_family == UInt8(AF_INET6) { var hostname = [CChar](repeating: 0, count: Int(NI_MAXHOST)) if (getnameinfo(&addr, socklen_t(addr.sa_len), &hostname, socklen_t(hostname.count),nil, socklen_t(0), NI_NUMERICHOST) == 0) { if let address = String(validatingUTF8:hostname) { addresses.append(address) } } } } ptr = ptr!.pointee.ifa_next } freeifaddrs(ifaddr) } return addresses.first }
|