2012-02-27 22 views

回答

3

您測試ifa_addr->sa_family - IPv4地址將爲AF_INET,IPv6地址爲AF_INET6

然後,您可以根據需要將ifa_addr成員投射到struct sockaddr_in *struct sockaddr_in6 *

+0

剛剛發現了這個!非常感謝。 – hari 2012-02-27 05:01:15

+0

你會知道我該如何檢查接口地址是否被分配「靜態」盟友或通過dhcp? – hari 2012-02-28 17:45:52

+0

@hari:不,我建議你再問一個問題。 – caf 2012-02-28 22:50:24

0

在FreeBSD中,假設你有兩種內核支持,IPv4 vs IPv6的問題只是配置問題。

FreeBSD中的「GENERIC」內核包含「INET6」選項,它爲您提供IPV6。如果你還沒有重建你的內核,並且不包括這個選項,那麼你只需通過配置一個IPv6地址就可以在任何接口上使用IPv6。

0

您可以嘗試在接口上打開IPV6套接字以查看它是否支持IPV6。