我正在嘗試使用C#編寫一個程序作爲我公司的多用途工具。我們希望使用此工具的其中一項內容是確定IPv6是否啓用/綁定到Windows 7計算機上的本地連接網絡適配器。我不是在尋找它的地址,只是爲了知道它是否在該適配器上啓用或禁用。我不確定如何編碼。從我已經能夠在網上找到的,似乎我應該使用System.Net.Configuration和Ipv6Element來檢查它是否啓用,但我不知道如何對其進行編碼。我希望能夠顯示它是否在文本框中啓用或禁用,所以我猜我會使用布爾值。有人能指出我在這方面的正確方向嗎?謝謝!檢查Windows 7上是否啓用了IPv6使用C#
回答
您可以測試使用該屬性的操作系統是否支持IPv6:
bool supportsIpV6 = System.Net.Sockets.Socket.OSSupportsIPv6;
謝謝你的建議,hmemcpy。當我用if/else語句嘗試時,即使在取消選中本地連接屬性中的框時,它也總是返回語句的真實部分。我想我的問題可能不是很具體。我不知道我的操作系統是否支持IPv6,因爲我知道它是啓用/綁定到網絡適配器的。對不起,我更新了我的問題,以便更準確。 – 2013-02-10 15:23:23
這是我嘗試基於你的建議的代碼.... bool supportsIpV6 = System.Net.Sockets.Socket.OSSupportsIPv6; if(supportsIpV6 == true) { ipStatusTextBox.Text =「IPv4 and IPv6」; } else if(supportsIpV6 == false) { ipStatusTextBox.Text =「僅限IPv4」; } – 2013-02-10 15:28:07
請注意,這不適用於Windows XP - 事實上它會拋出一個非常討厭的錯誤(「程序入口點_except_handler4_common無法位於動態鏈接庫msvcrt.dll中」) – Sean 2013-07-11 09:12:49
您可以查詢你問什麼的(如果啓用IPv6或特定網絡適配器禁用)用下面的代碼使用System.Net.NetworkInformation命名空間:
using System.Net.NetworkInformation;
// ...
NetworkInterface[] allInterfaces = NetworkInterface.GetAllNetworkInterfaces();
NetworkInterface firstInterface = allInterfaces[0];
bool interfaceSupportsIPv6 = firstInterface.Supports(NetworkInterfaceComponent.IPv6);
文檔在MSDN:Link
我已經使用這個碼T o測試它。注意它測試IPV6是否啓用,而不是網卡是否兼容IPV6:
public static bool InterfaceHasIpv6Enabled(NetworkInterface @interface)
{
try
{
var properties = @interface.GetIPProperties().GetIPv6Properties();
return properties.Index > -999;
}
catch (System.Net.NetworkInformation.NetworkInformationException)
{
return false;
}
catch (Exception ex)
{
throw ex;
}
}
- 1. 以編程方式檢查在Windows上是否啓用了IPv6
- 2. C#檢查是否在Windows客戶端上啓用了遠程桌面
- 3. 檢查是否啓用了BlackBerry gps
- 4. 檢查Windows 10中是否啓用了「同步密碼」
- 5. 檢查是否使用C#
- 6. 如何檢查防火牆是否在Windows中啓用C
- 7. 如何使用otool檢查是否啓用了位代碼
- 8. 檢查是否使用php啓用了ssl
- 9. 如何檢查是否使用PowerShell啓用了Hyper-V?
- 10. 如何檢查設備上是否啓用了藍牙
- 11. 如何檢查是否啓用了向上按鈕?
- 12. 如何檢查給定路徑上是否啓用了POSIX ACL
- 13. 檢查設備上是否啓用了facetime
- 14. 檢查在rails上的ruby中是否啓用了javascript和cookie?
- 15. 檢查是否在iOS7上啓用了推送通知
- 16. 如何檢查iOS上是否啓用了BackgroundFetching?
- 17. 如何檢查android上是否啓用了背景數據?
- 18. Win32 C/C++ - 檢測是否安裝了IPv6
- 19. 檢查是否啓用
- 20. iOS 7:檢測App autoupdating是否啓用?
- 21. 檢查使用iTextSharp是否在PDF上啓用了「Fast Web View」屬性
- 22. 檢查是否在Linux上通過C庫啓用了防火牆
- 23. 如果在Windows機器上啓用IPv6,則檢測到
- 24. 使用C#如何檢測是否安裝了Windows Installer 4.5
- 25. 如何檢查是否使用了matplotlibrc
- 26. 如何檢查PDF是否啓用Reader或不使用C#?
- 27. 如何檢測系統是否在UNIX shell腳本中啓用了IPv6?
- 28. 檢查IPv4/IPv6地址是否使用PHP
- 29. IPV6雙棧模式檢查是加載了ipv6內核模塊
- 30. 檢查用戶是否啓用了自動糾正功能iOS
禁用Win7上的ipv6支持需要大量手術,它需要手動編輯註冊表。 http://support.microsoft.com/kb/929852 – 2013-02-10 12:53:52