2010-06-24 100 views
2

有沒有一種方法可以用編程方式檢查在Windows上使用C++安裝/啓用IPv6?無論是在界面級還是系統級。以編程方式檢查在Windows上是否啓用了IPv6

+0

僅僅因爲它在主機上啓用,並不意味着路由器會支持它...... – 2010-06-24 13:16:51

+0

如果他們的機器支持IPv6,我需要爲用戶提供一些額外的配置選項。我的許多用戶都在沒有IPv6支持的舊機器上運行。 – 2010-06-24 13:43:35

回答

2

有很多網絡可用性的東西,最簡單的方法是嘗試使用它並捕獲例外,如果它失敗。

0

一個答案是枚舉系統接口使用GetAdapterAddresses()並尋找一個IPv6地址。

-1

最簡單的就是嘗試打開一個插座,

const int sock6 = socket (AF_INET6, SOCK_DGRAM, 0); 
const BOOL is_ip6_enabled = (SOCKET_ERROR != sock6); 
close (sock6); 
+0

這不起作用。在Windows 2008中,即使未啓用IPv6,您仍然可以獲得套接字句柄。 – shoosh 2011-12-08 18:46:59

+0

您可能會將「啓用」與「擁有IPv6接口」混淆? – 2011-12-09 00:59:54

0

記住,在XP就必須運行ipv6 install IPv6將是可用之前,所以它更復雜一點比你想象的。

相關問題