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