我正在尝试使用gethostname / gethostbyname找到本地IP地址,但在执行此操作时我总是“无法解决”。
为什么会失败? 还有其他方法可以在iPhone中获取本地IP地址吗?
很多
答案 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'方法”
任何方法都可以删除这些警告???