【发布时间】:2012-07-19 15:04:09
【问题描述】:
我有以下代码 sn-p 返回正确的 IPV4 地址。
NSArray *addresses = [[NSHost currentHost] addresses];
NSString *stringAddress;
for (NSString *anAddress in addresses) {
if (![anAddress hasPrefix:@"127"] && [[anAddress componentsSeparatedByString:@"."] count] == 4) {
stringAddress = anAddress;
NSLog(@"stringAddress is %@",stringAddress);
break;
} else {
// Do Something
}
}
运行此应用程序后,这些是 NSHost 地址显示的 IP 地址。
2012-10-01 17:30:45.722 GetIPV6Address[1928:403] addresses is (
"fe80::426c:8fff:fe07:f4e4%en0",
"fdc7:2c68:e800::426c:8fff:fe07:f5e5",
"fdc7:2c68:e800::fd62:f01c:155d:3228",
"fe80::7ec3:a1ff:fea5:c32d%en1",
"198.168.10.144",)
在我的系统偏好设置中,我可以看到我的 IPV4 地址是 198.168.10.144,而 IPV6 地址是 fdc7:2c68:e800::426c:8fff:fe07:f5e5。
此列表的顺序并不总是相同,因此我无法动态获取正确的 IP 地址。从列表中我怎么能发现 fdc7:2c68:e800::426c:8fff:fe07:f5e5 是我的 IPV6 地址。任何帮助将不胜感激。
【问题讨论】:
-
“第一个不是正确的”是什么意思?第一个是什么?什么是正确的?为什么重要的是哪个是第一个?
-
它列出了一些3个或更多的IP地址,在这个列表中,第一个是第一个IP地址,它是一些随机IP地址,在系统偏好中,我们可以看到IP地址正确,IP系统偏好设置中的地址是正确的。
-
实际的第一个 IP 地址是什么?是什么让您认为它是“一些随机 IP 地址”而不是正确的?是什么让你认为正确的那个实际上是“正确的”?你的标准是什么?
标签: macos cocoa ip-address ipv6