1

我想使用此代码来了解我的 ip,但我收到了 2 个我现在无法修复的警告。我还发现了这篇文章:Accessing IP Address with NSHost

但我只是想了解为什么这段代码不起作用,如果有人有答案?

这是我的代码:

      -(NSString*)getAddress {
            NSString *iphone_ip = [NSString initWithString:@"127.0.0.1"];
            NSHost* myhost =[NSHost currentHost];
            if (myhost)
            {
                NSString *ad = [myhost address];
                if (ad)
                    strcpy(iphone_ip,[ad cStringUsingEncoding: NSISOLatin1StringEncoding]);
            }
            return [NSString stringWithFormat:@"%s",iphone_ip]; 
        }

第一个警告是:

NSHost* myhost =[NSHost 当前主机]

,表示 currentHost 未被识别。第二个开启

NSString *ad = [我的主机地址];

“初始化'struct NSData”的不兼容obj-c类型,预期'struct NString “”

我可以想象当第一个警告得到解决时,第二个警告可能会消失......

谢谢你的帮助

保罗

4

1 回答 1

2

正如您从此处的文档中看到的那样,它记录在 OS X 库下。

NSHost

它实际上是 iPhone 上的私有 API。您应该仍然可以使用它,但您会收到编译器警告。

如果你需要找出你的 IPAddress,你可以使用 NSURLRequest 和 NSURLConnection 使用这个 URL:WhatIsMyIP API

该页面专门供程序员使用。他们要求您每 300 秒 ping 一次不超过一次。您可以在此处找到常见问题解答:常见问题解答

于 2011-06-30T13:24:31.940 回答