本文介绍了使用 Swift 3 获取 iPhone 或 iPad 设备的 IP 地址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何使用 Swift 3 编程语言在不使用任何第三方库的情况下检索设备的 IP 地址?我使用以下代码来获取 IP 地址:
How to retrieve the device's IP address without using any third-party libraries using Swift 3 programming language? I have used the following code in order to get the IP address:
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
语法不起作用.它会引发语法错误.我需要导入一个框架来帮助我吗?
But the UnsafeMutablePointer<ifaddrs>
syntax is not working. It throws a syntax error. Do I need to import a framework to try to help me?
推荐答案
在您的桥接头中添加 #include
.
这是获取IP地址所需的框架.
This is the framework needed to get IP address.
您也可以参考以下链接:
Also you can refer the following link:
这篇关于使用 Swift 3 获取 iPhone 或 iPad 设备的 IP 地址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!