1
我有以下代码片段,它返回正确的IPV4地址。如何在可可中获取正确的IPv6地址
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地址。任何帮助将不胜感激。
“第一个不正确的”是什么意思?第一个是什么?什么是正确的?为什么它首先是重要的? – 2012-07-20 10:46:27
其中列出了一些3个或更多的IP地址,在这个列表中,第一个是第一个IP地址,它是一些随机IP地址,在系统偏好设置中,我们可以看到IP地址正确,系统首选项中的IP地址是正确的一。 – Akbar 2012-07-20 11:29:34
什么是实际的第一个IP地址?是什么让你认为它是“一些随机的IP地址”而不是正确的?是什么让你认为正确的人实际上“正确”?你的标准是什么? – 2012-07-20 19:09:09