如何在目标c中获得外部IP

我寻找一些代码,这将帮助我得到IP连接的IP。

我发现这一个:

- (NSString *)getIPAddress { NSString *address = @"error"; struct ifaddrs *interfaces = NULL; struct ifaddrs *temp_addr = NULL; int success = 0; // retrieve the current interfaces - returns 0 on success success = getifaddrs(&interfaces); if (success == 0) { // Loop through linked list of interfaces temp_addr = interfaces; while(temp_addr != NULL) { if(temp_addr->ifa_addr->sa_family == AF_INET) { // Check if interface is en0 which is the wifi connection on the iPhone if([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) { // Get NSString from C String address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)]; } } temp_addr = temp_addr->ifa_next; } } // Free memory freeifaddrs(interfaces); return address; } 

但问题是,他让我这个IP 10.0.0.1

有关于获取外部IP的任何文章\代码。

谢谢

从代码中获取Internet IP地址的最简单方法是使用NSURLConnection 。

对于您可以使用的URL: http : //www.whatismyip.com/m/mobile.asp或http://checkip.dyndns.com/

只是parsing返回的数据,你有你的外部IP地址。

看看我的第二个答案在这里的例子。

简而言之,它使用* http://www.dyndns.org/cgi-bin/check_ip.cg *我得到extenal IP

检查苹果的PortMapper ,是否正是你想要的。

截至iOS7这是无关紧要的。