我查找了一些代碼,這些代碼可以幫助我獲取iphone連接的IP。如何在目標c中獲取外部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的任何物品\代碼。
謝謝
你期待什麼樣的IP地址?該設備可能會通過WiFi或3G網絡等,因此您不可能檢索任何形式的有意義的「外部」IP地址。 – 2011-03-27 16:42:56
Middaparka是正確的 - 從設備的角度來看,10.0.0.1 *是*其外部IP地址。 – 2011-03-27 17:43:34