我正在尝试使用NSHost获取IP地址。使用NSHost对象,我可以使用地址方法来访问对象数组,其中之一是IP地址。我担心IP地址可能会将阵列中的位置从一台机器更改为另一台机器。有没有一种以通用方式访问此信息的方法?

在上一篇文章中曾尝试回答此问题,但正如您所看到的那样。

IP Address? - Cocoa

这是我的代码:

+(NSString *) ipAddress {
    NSHost * h = [[[NSHost currentHost] addresses] objectAtIndex:1];
    return h ;
}

最佳答案

我已经在很多机器上使用了它,没有出现问题。

 -(void) getIPWithNSHost{
    NSArray *addresses = [[NSHost currentHost] addresses];

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

}

NSString * stringAddress;被宣布在其他地方

关于objective-c - 使用NSHost访问IP地址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3266428/

10-11 21:21