如何以编程方式获取iPhone的IP地址
我有一个networking服务器,并通过使用Mongoose运行在iphone。 但问题是我怎么能得到我的iPhone / iPad的IP地址,让用户知道他们可以访问服务器的位置。 我发现[NSHost addresses]
可以做的工作,但我正在开发的应用程序商店,这是无证的方法。
#include <ifaddrs.h> #include <arpa/inet.h> - (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; }
我相信[NSHost address];
logging在案,它列在这里: http : //developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSHost_Class/Reference/Reference.html
使用[[NSHost currentHost] address];
获得IP。