2013-01-21 95 views
2

我試圖獲取地址信息到structred addrinfo **結果。getaddrinfo爲ipv6鏈接本地

,但我得到下面的錯誤代碼

錯誤的getaddrinfo:地址系列主機不支持

代碼

error = getaddrinfo("fe80::4e80:93ff:fe33:13ff%wlan0", NULL, NULL, &result); 
if (error != 0) 
{ 
    fprintf(stderr, "error in getaddrinfo: %s\n", gai_strerror(error)); 
    exit(EXIT_FAILURE); 
} 

我能ping該地址 $ ping6 fe80 :: 4e80:93ff:fe33:13ff%wlan0

這裏是ifconfig的細節小號

wlan0  Link encap:Ethernet HWaddr 4c:80:93:33:13:ff 
      inet addr:192.168.43.188 Bcast:192.168.43.255 Mask:255.255.255.0 
      inet6 addr: fe80::4e80:93ff:fe33:13ff/64 Scope:Link 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      RX packets:1985 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:2748 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1000 
      RX bytes:950126 (950.1 KB) TX bytes:684317 (684.3 K 

這個作品時,我嘗試了IPv4的,但我需要得到對IPv6

+0

這不是主機名,錯誤可能是您連接到的DNS基礎架構的限制。 –

回答

2

中的getaddrinfo當你給NULL爲線索,將的getaddrinfo自動使用AI_ADDRCONFIG。通常你會想要設置這個標誌,但是當連接到一個鏈接本地地址就是你不想要的地方。

我猜你沒有配置全局IPv6地址,因此AI_ADDRCONFIG只選擇IPv4,而不是IPv6。提供適當的提示是避免這種情況的方法。

相關問題