如何查询iPhone的当前IP地址?

时间:2008-11-04 00:53:20

标签: iphone networking

如何查询iPhone的当前IP地址?

2 个答案:

答案 0 :(得分:13)

如果您需要外部 IP地址(用于从本地网络外部连接的IP地址),则需要查询外部网络上的服务器。快速搜索产生以下内容:http://checkip.dyndns.orghttp://www.whatismyip.com。使用例如加载页面非常简单。

[NSData dataWithContentsOfURL:url]

并执行一些字符串操作以检索IP地址。

如果您想要内部 IP地址(例如通过DHCP分配给您的设备),您通常可以解析设备的主机名,即


/*
Returns the local IP, or NULL on failure.
*/
const char* GetLocalIP() {
  char buf[256];
  if(gethostname(buf,sizeof(buf)))
    return NULL;
  struct hostent* he = gethostbyname(buf);
  if(!he)
    return NULL;
  for(int i=0; he->h_addr_list[i]; i++) {
    char* ip = inet_ntoa(*(struct in_addr*)he->h_addr_list[i]);
    if(ip != (char*)-1) return ip;
  }
  return NULL;
}

答案 1 :(得分:4)

您可以尝试使用与此服务类似的内容: Whatismyip并捕获字符串:)

感谢Erica Sadun的iPhone开发者的Cookbok,第2版,第555页。