如何在Objective-C中以编程方式获取本地域名称知道IP地址?

时间:2013-03-22 13:38:22

标签: ios cocoa-touch

您在2个不同的本地网络中拥有许多iPad,我想在Objective-C中以编程方式了解每个iPad中基于IP地址的本地域。 例如,我在本地域“iPad.local”中有一台iPad。在此域中,我们有许多IP地址为192.168.12.50。 IOS设备自动获取其IP地址。

现在我想在Objective-C中获得programmaticaly域名“projet.local”知道ip地址吗?

1 个答案:

答案 0 :(得分:2)

试试这个(类似于dreamlax的回答https://stackoverflow.com/a/3575383/1758762):

struct addrinfo *results = NULL;
char hostname[NI_MAXHOST] = {0};

if ( getaddrinfo("192.168.12.50", NULL, NULL, &results) != 0 )
    return;

for (struct addrinfo *r = results; r; r = r->ai_next)
{
    if (getnameinfo(r->ai_addr, r->ai_addrlen, hostname, sizeof hostname, NULL, 0 , 0) != 0)
        continue; // try next one
    else
    {
        NSLog (@"Found hostname: %s", hostname);
        break;
    }
}

freeaddrinfo(results);