小编And*_*dan的帖子

在Objective-C中获取公共IP?

在我的应用程序中,我需要获取一个NSString对象值等于用户公共/互联网IP地址的值.我试图解决这个问题,但两者都返回本地IP地址而不是公开.以下是我的两种方法.一个更精确,并始终返回数组中的正确项.另一个没有.(因为只选一个随机索引)...

- (NSString *)getPublicIP {   
    NSHost *publicIP = [[[NSHost currentHost] addresses] objectAtIndex:0];
    return publicIP;  
}
Run Code Online (Sandbox Code Playgroud)

其他更精确:(但不获得公共IP)

 //start get ip
- (NSString *)getIPWithNSHost { 

NSArray *addresses = [[NSHost currentHost] addresses];
NSString *stringAddress;
for (NSString *anAddress in addresses) {
    if (![anAddress hasPrefix:@"127"] && [[anAddress componentsSeparatedByString:@"."] count] == 4) {
    stringAddress = anAddress;
    break;
    }
    else {
    stringAddress = @"IPv4 address not available" ;

}
    //NSLog(stringAddress);
}
NSLog (@"getIPWithNSHost: stringAddress = %@ ",stringAddress); 
stringAddress = (@"getIPWithNSHost: stringAddress = %@ ",stringAddress);

return  stringAddress;

} …
Run Code Online (Sandbox Code Playgroud)

ip external objective-c ip-address

1
推荐指数
1
解决办法
5406
查看次数

标签 统计

external ×1

ip ×1

ip-address ×1

objective-c ×1