如何在不使用任何使用Swift 3编程语言的第三方库的情况下获取设备IP地址。其实我已经使用下面的代码来获取IP地址。获取iPhone或iPad设备的IP地址使用Swift 3
func getIPAddress() -> String? {
var address : String?
var ifaddr : UnsafeMutablePointer<ifaddrs> = nil
if getifaddrs(&ifaddr) == 0 {
var ptr = ifaddr
while ptr != nil {
defer { ptr = ptr.memory.ifa_next }
let interface = ptr.memory
let addrFamily = interface.ifa_addr.memory.sa_family
if addrFamily == UInt8(AF_INET) || addrFamily == UInt8(AF_INET6) {
if let name = String.fromCString(interface.ifa_name) where name == "en0" {
var hostname = [CChar](count: Int(NI_MAXHOST), repeatedValue: 0)
getnameinfo(interface.ifa_addr, socklen_t(interface.ifa_addr.memory.sa_len),
&hostname, socklen_t(hostname.count),
nil, socklen_t(0), NI_NUMERICHOST)
address = String.fromCString(hostname)
}
}
}
freeifaddrs(ifaddr)
}
return address
}
但UnsafeMutablePointer语法是行不通的。它通过语法错误。我是否需要导入任何框架试图帮助我。
这看起来像https://stackoverflow.com/a/30754194/1187415的代码,这已经为斯威夫特3前段时间更新。 –