Swift中利用域名获得IP地址
代码如下:
func dnsToIP() -> String? {
let host = CFHostCreateWithName(nil, "baidu.com").takeRetainedValue()
CFHostStartInfoResolution(host, .Addresses, nil)
var success: Boolean = 0
if let addressesCF = CFHostGetAddressing(host, &success) {
let addresses = addressesCF.takeRetainedValue() as NSArray
if addresses.count != 0 {
let theAddress = addresses[0] as! NSData
var hostname = [CChar](count: Int(NI_MAXHOST), repeatedValue: 0)
if getnameinfo(UnsafePointer(theAddress.bytes), socklen_t(theAddress.length), &hostname, socklen_t(hostname.count), nil, 0, NI_NUMERICHOST) == 0 {
if let numAddress = String.fromCString(hostname) {
return numAddress
}
}
}
} else {
NSLog("域名出错")
}
return nil
}
上述代码有些许漏洞,正在修正中,目前可使用Swift中利用域名获得IP地址 C方式
借鉴信息: http://stackoverflow.com/questions/25890533/how-can-i-get-a-real-ip-address-from-dns-query-in-swift
本文由 创作,采用 知识共享署名4.0 国际许可协议进行许可。本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为: 2021/06/10 03:09