Получить адреса IPv4 из Dns.GetHostEntry ()

У меня есть код, который отлично работает на машинах IPv4, но на нашем сервере сборки (IPv6) он терпит неудачу. В двух словах:

IPHostEntry ipHostEntry = Dns.GetHostEntry(string.Empty); 

Документация для GetHostEntry говорит, что передача в string.Empty получит вам IPv4-адрес локального хоста. Это то, чего я хочу. Проблема в том, что он возвращает строку «:: 1:» на нашей машине IPv6, которая, я считаю, является адресом IPv6.

Pinging машина от любой другой машины IPv4 дает хороший адрес IPv4 … и делает «ping -4 machinename» от самого себя дает правильный адрес IPv4 …. но регулярно его пинговать от себя дает «:: 1:».

Как я могу получить IPv4 для этой машины, от себя?

Посмотрели ли вы на все адреса в обратном направлении, отбросьте семейство InterNetworkV6 и сохраните только IPv4?

Чтобы найти все локальные адреса IPv4:

 IPAddress[] ipv4Addresses = Array.FindAll( Dns.GetHostEntry(string.Empty).AddressList, a => a.AddressFamily == AddressFamily.InterNetwork); 

или используйте Array.Find или Array.FindLast если вы просто хотите его.

  public Form1() { InitializeComponent(); string myHost = System.Net.Dns.GetHostName(); string myIP = null; for (int i = 0; i <= System.Net.Dns.GetHostEntry(myHost).AddressList.Length - 1; i++) { if (System.Net.Dns.GetHostEntry(myHost).AddressList[i].IsIPv6LinkLocal == false) { myIP = System.Net.Dns.GetHostEntry(myHost).AddressList[i].ToString(); } } } 

Объявите myIP и myHost в public Variable и используйте любую функцию формы.

 IPHostEntry ipHostInfo = Dns.GetHostEntry(serverName); IPAddress ipAddress = ipHostInfo.AddressList .FirstOrDefault(a => a.AddressFamily == AddressFamily.InterNetwork); 
  public static string GetIPAddress(string hostname) { IPHostEntry host; host = Dns.GetHostEntry(hostname); foreach (IPAddress ip in host.AddressList) { if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { //System.Diagnostics.Debug.WriteLine("LocalIPadress: " + ip); return ip.ToString(); } } return string.Empty; } 

Чтобы найти все допустимые списки адресов, это код, который я использовал

 public static IEnumerable GetAddresses() { var host = Dns.GetHostEntry(Dns.GetHostName()); return (from ip in host.AddressList where ip.AddressFamily == AddressFamily.lo select ip.ToString()).ToList(); } 

IPv6

lblIP.Text = System.Net.Dns.GetHostEntry (System.Net.Dns.GetHostName) .AddressList (0) .ToString ()

IPv4

lblIP.Text = System.Net.Dns.GetHostEntry (System.Net.Dns.GetHostName) .AddressList (1) .ToString ()

  • Подключение IPv4 к IPv6-only
  • Почему Chromium не может подключаться к http: // : 8080 / (то есть IPv6 localhost)?
  • Как я могу конвертировать адрес IPV6 в адрес IPV4?
  • Windows 7 RTM: Loopback SMB через соединение TCP / IPv6, предотвращающий спящий режим
  • Как прозрачно туннелировать порт с IPv4 на удаленное устройство IPv6?
  • IPv4 и IPv6 из разных браузеров на одном компьютере
  • Как веб-браузер определяет, когда использовать IPv4 или IPv6 для подключения к месту назначения?
  • Есть ли какая-либо польза от использования IPv6 в моей домашней сети?
  • Обновление Windows не работает и потребляет 100% CPU (Win7 SP1)
  • Удалился бы NAT, преобразованный в ipv6?
  • Записи NDP в Linux
  • Interesting Posts

    Как я могу узнать о неизвестном расширении файла?

    Заполните оставшееся вертикальное пространство с помощью CSS с помощью дисплея: flex

    Фоновое изображение для выбора (выпадающее меню) не работает в Chrome

    Создание оглавления для XWPFDocument с указанием номеров страниц

    Как указать каждую вкладку, открытую пользовательским именем {Task}?

    В чем разница между `##` и `hashCode`?

    C #: эквивалентность типа данных Oracle с OracleDbType

    Как получить расширение SQLSRV для работы с PHP, поскольку MSSQL устарел?

    Если я регулярно использую CCleaner, это повредит или сократит срок службы жесткого диска?

    Как переопределить метод добавления List на C #?

    Запустите mac eclipse с установленными переменными окружения

    Как использовать греческие символы в ggplot2?

    Коррумпированный MFT-раздел раздела NTFS. Какой инструмент прав? Какой инструмент исправить?

    Обновление Studio Studio Gradle до версии 0.5.0 – Gradle Migrating От 0,8 до 0,9 – Также обновление для Android Studio до 0.8.1

    Ошибка: «Ошибка подключения Adb: существующее соединение было принудительно закрыто удаленным хостом»

    Давайте будем гением компьютера.