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

Hed*_*dam 1 cocoa-touch objective-c ios

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

我试过谷歌,但一无所获.

Mar*_*n R 8

以下代码适用于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);
Run Code Online (Sandbox Code Playgroud)

  • @RoboForm:你必须添加一些包含文件.如果在命令行上键入"man getaddrinfo",您将看到需要包含哪些文件. (5认同)