ios - 如何在 iOS 上从主机名获取 IP

标签 ios objective-c cocoa-touch

这个问题在这里已经有了答案:





Obtaining a server IP address from hostname

(3 个回答)


8年前关闭。




如何从 iOS 上的给定主机名获取 IP?

我试过谷歌但一无所获。

最佳答案

以下代码适用于 IPv4 和 IPv6。它使用 getaddrinfo()
检索主机的 IP 地址列表,以及 getnameinfo()转换
每个 IP 地址成一个字符串。 (为简洁起见,省略了错误检查。)

struct addrinfo hints;
memset(&hints, 0, sizeof(hints));
hints.ai_family = PF_UNSPEC;        // PF_INET if you want only IPv4 addresses
hints.ai_protocol = IPPROTO_TCP;

struct addrinfo *addrs, *addr;

getaddrinfo("www.google.com", NULL, &hints, &addrs);
for (addr = addrs; addr; addr = addr->ai_next) {

    char host[NI_MAXHOST];
    getnameinfo(addr->ai_addr, addr->ai_addrlen, host, sizeof(host), NULL, 0, NI_NUMERICHOST);
    printf("%s\n", host);

}
freeaddrinfo(addrs);

关于ios - 如何在 iOS 上从主机名获取 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18344602/

相关文章:

ios - NSData 图像在内存中的权重是否与打开的图像一样大?

ios - 如何使用 Text Kit (iOS 7) 在 UITextView 中垂直居中文本

objective-c - 如何检测 NSWindow 最大化或缩放事件?

objective-c - 使用ReactiveCocoa时如何不使用flattenMap直接订阅signal的信号?

ios - 当变量已被另一个线程使用时,原子属性阻止或取消特定线程访问变量的请求

cocoa-touch - 触摸时不突出显示 TableView 行

ios - [CFString 发布] : message sent to deallocated instance

ios - 从 iOS 应用上传到自己的 YouTube 帐户

iphone - 实现 youtube API

iphone - 如何检查iOS中应用的可用空间?