Ios 如何从局域网上的ip地址解析局域网中设备的主机名?

Ios 如何从局域网上的ip地址解析局域网中设备的主机名?,ios,macos,networking,Ios,Macos,Networking,我必须从LAN上的ip地址解析LAN中设备的主机名。 我有一些代码适用于外部ip地址,但不适用于内部连接的设备 下面我附上了代码 如果您有任何想法,从iOS/OSX中的IP获取远程机器的主机名,这将使我大开眼界 int error; struct addrinfo *results = NULL; error = getaddrinfo("173.194.34.24", NULL, NULL, &results); if (error != 0) { NSLog (@"Co

我必须从LAN上的ip地址解析LAN中设备的主机名。 我有一些代码适用于外部ip地址,但不适用于内部连接的设备

下面我附上了代码

如果您有任何想法,从iOS/OSX中的IP获取远程机器的主机名,这将使我大开眼界

  int error;
struct addrinfo *results = NULL;

error = getaddrinfo("173.194.34.24", NULL, NULL, &results);
if (error != 0)
{
    NSLog (@"Could not get any info for the address");

}

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


freeaddrinfo(results);
还是与NSHost一起

NSLog(@"%@ \n%@",[NSHost currentHost],[[NSHost hostWithAddress:@"172.17.241.61"] names]);

直接对特定DNS进行DNS查找的唯一方法是自己实现协议或使用一些库


您的局域网中有DNS服务器吗?如果没有,您希望获得什么主机名?是的,我有DNS服务器,如何通过DNS服务器获得主机名您应该将DNS服务器的IP设置为网络配置或将其配置为DHCP服务器。然后将DNS服务器配置为转发无法解析到ISP DNS服务器的请求。对我来说,每次CFHostStartInfo解决方案失败时都是这样。如何解决这个问题,是否有其他选择?是否使用kCFHostNames调用CFHostStartInfoResolution?