在iphone中查找本地IP地址

时间:2009-02-09 08:51:21

标签: iphone

  

可能重复:
  How do I query the iPhone's current IP address?

我正在尝试使用gethostname / gethostbyname找到本地IP地址,但在执行此操作时我总是“无法解决”。

为什么会失败? 还有其他方法可以在iPhone中获取本地IP地址吗?

很多

6 个答案:

答案 0 :(得分:8)

答案 1 :(得分:3)

    -(NSString*)getAddress {
          char iphone_ip[255];
          strcpy(iphone_ip,"127.0.0.1"); // if everything fails
          NSHost* myhost =[NSHost currentHost];
          if (myhost)
          {
              NSString *ad = [myhost address];
              if (ad)
                  strcpy(iphone_ip,[ad cStringUsingEncoding: NSISOLatin1StringEncoding]);
          }

          return [NSString stringWithFormat:@"%s",iphone_ip]; 
     }

答案 2 :(得分:2)

我在Erica Sadun的书中找到了使用gethostname / gethostbyname的解决方案。诀窍是在调用gethostbyname之前将“.local”后缀附加到主机名。

答案 3 :(得分:2)

除了这里的其他答案,我建议您查看ADC网站上的Reachability示例代码。

答案 4 :(得分:0)

值得注意的是,许多运营商(特别是在“第一世界”之外)分发RFC1918(通常是10.0.0.0/8)地址,因此对其中一项服务进行HTTP请求可能会更好(当然,除外)许多运营商出于必要,为大型NAT池使用多个公共地址)

答案 5 :(得分:0)

在iPhone OS库中找不到NSHost,它存在于Mac OS核心库中。

我收到2个警告

“警告:找不到'+ currentHost'方法”  “警告:找不到'-address'方法”

任何方法都可以删除这些警告???