Я пытаюсь написать программу с использованием C#, чтобы действовать как многофункциональный инструмент для моей компании. Одна из вещей, которые мы хотели бы в этом инструменте, - определить, включен ли IPv6/привязан к сетевому адаптеру локальной сети на наших машинах Windows 7. Я не ищу, чтобы у него был адрес, просто чтобы узнать, включен ли он или нет на этом адаптере. Я не уверен, как это кодировать. Из того, что мне удалось найти в Интернете, кажется, я должен использовать System.Net.Configuration и Ipv6Element, чтобы проверить, включено ли это, но я понятия не имею, как его кодировать. Я хотел бы иметь возможность отображать, если он включен или отключен в текстовом поле, поэтому я предполагаю, что я буду использовать логические значения. Может ли кто-нибудь указать мне в правильном направлении? Благодаря!Проверка наличия IPv6 в Windows 7 с использованием C#
ответ
Вы можете проверить, поддерживает ли ОС IPv6 с помощью этого свойства:
bool supportsIpV6 = System.Net.Sockets.Socket.OSSupportsIPv6;
Благодарим за предложение hmemcpy. Когда я попробовал это с инструкцией if/else, он всегда возвращал истинную часть инструкции, даже когда я снял флажок в свойствах подключения к локальной сети. Я думаю, что я, возможно, не был очень конкретным с моим вопросом. Мне не очень интересно знать, поддерживает ли моя ОС IPv6, поскольку я знаю, что она включена/привязана к сетевому адаптеру. Извините за путаницу, я уточнил свой вопрос, чтобы быть более точным. –
Это код, который я пробовал на основе вашего предложения .... bool поддерживаетIpV6 = System.Net.Sockets.Socket.OSSupportsIPv6; if (supportsIpV6 == true) { ipStatusTextBox.Text = "IPv4 и IPv6"; } else if (supportsIpV6 == false) { ipStatusTextBox.Text = "Только IPv4"; } –
Обратите внимание, что это не работает на Windows XP - на самом деле это вызывает очень неприятную ошибку («Точка входа процедуры _except_handler4_common не может быть расположена в библиотеке динамических ссылок msvcrt.dll») – Sean
Вы можете запросить именно то, что вы просили (если IPv6 включена или отключена для конкретного сетевого адаптера) со следующим кодом с использованием пространства имен System.Net.NetworkInformation:
using System.Net.NetworkInformation;
// ...
NetworkInterface[] allInterfaces = NetworkInterface.GetAllNetworkInterfaces();
NetworkInterface firstInterface = allInterfaces[0];
bool interfaceSupportsIPv6 = firstInterface.Supports(NetworkInterfaceComponent.IPv6);
документации на MSDN: Link
Я использовал этот код т 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. Проверка наличия удаленного MessageQueue (с использованием C#)
- 2. Проверка наличия функций Windows API
- 3. В Windows XP с языком C: проверка наличия файла
- 4. C# - Проверка наличия строк
- 5. Проверка наличия пользовательского класса в массиве списков с использованием C#
- 6. Проверка наличия пакета (.app) с использованием CoreFoundation в C
- 7. Проверка логотипа Windows 7
- 8. Проверка наличия ввода в C
- 9. проверка наличия шрифта постскриптума
- 10. Проверка наличия записи с использованием Dapper ORM
- 11. Проверка наличия записи с использованием двух полей
- 12. Проверка наличия папки с использованием файла .bat
- 13. Проверка наличия доступной комнаты с использованием MySql
- 14. Проверка наличия файла с использованием проблемы $ .ajax()
- 15. Проверка наличия поля ввода с использованием jQuery
- 16. Проверка наличия двух массивов - C
- 17. Проверка наличия пакета python C#
- 18. Использование Windows 7 RC с использованием C#?
- 19. Windows 7 Виртуальный WiFi с использованием C#?
- 20. Проверка наличия внешних идентификаторов в C
- 21. Проверка наличия принтера
- 22. Проверка наличия определенного элемента в определенном массиве с использованием javascript
- 23. Проверка наличия значения реестра Visual C++ 2005
- 24. OpenStack - проверка наличия контейнера C# .NET.
- 25. Проверка наличия Oracle.DataAccess
- 26. Проверка наличия переменной среды в C
- 27. Проверка наличия каталога установки и установки программного обеспечения в Windows с C/C++
- 28. C# Проверка наличия изображения в другом изображении
- 29. Проверка подлинности Windows Phone 7 с использованием подсветки MVVM
- 30. Проверка наличия метода Split
Отключение ipv6 поддержки на Win7 занимает значительную операцию, он требует редактирования реестра вручную. http://support.microsoft.com/kb/929852 –