我在我的Ubuntu Karmic系統上遇到了一個奇怪的問題。無法綁定到IPv6地址
當我打電話的getaddrinfo()與AI_PASSIVE和AF_UNSPEC,一個空的主機和UDP端口12000獲得一個綁定的地址,我只拿回一個IPv4的結果(0.0.0.0:12000例如)。
如果我更改了我的調用並指定了AF_INET6而不是AF_UNSPEC,則getaddrinfo()將返回「名稱或服務未知」。
我不應該得到[::]:12000作爲結果?
如果將主機設置爲:: 1,則會發生同樣的情況。
當我打電話的getaddrinfo()不AI_PASSIVE(得到一個 「連接」 的地址)主機 「本地主機」 和UDP端口12000,我第一次得到[:: 1]:12000然後127.0.0.1 :12000。
很顯然,我的系統已準備好IPv6了(我可以同時ping到IPv4和IPv6地址以及DNS解析)。但是,我怎麼能得到一個IPv6地址與getaddrinfo()綁定?
你們有什麼想法可能是錯的?
我的操作系統是Ubuntu Karmic,全新安裝,沒有任何網絡調整。
謝謝。
PS:如果你不知道,但還是想幫我,你可以得到這個sample program或類型:
並給我的結果:
$ ./gai -ap空12000
我的結果是:
$ ./gai -ap空12000
的getaddrinfo(NULL, 「12000」,{。家庭= AF_UNSPEC,.hints = 0 | AI_ADDRCONFIG | AI_PASSIVE})= 0 :
家庭= 2,原= 6 inet4:地址= 0.0.0.0,端口= 12000
在那裏,你可以看到,我只有一個IPv4的結果。
它肯定幫了我 - 謝謝。 – 2011-03-04 13:15:04