dns.gethostbyname () - PullRequest
       7

dns.gethostbyname ()

4 голосов
/ 23 сентября 2011

Я искал в Интернете об изменении DNS gethostbyname на gethostentry и соответственно изменяю код, но почему до сих пор не отображается нормальный адрес ipv4? вот мой код:

string GetHostIP()
    {      
        String myHostName = System.Net.Dns.GetHostName();

        // Find host by name
        System.Net.IPHostEntry myiphost = System.Net.Dns.GetHostEntry(myHostName);

        String ipstring = "";
        foreach(System.Net.IPAddress myipadd in myiphost.AddressList)
        {
            ipstring = myipadd.ToString();
            return ipstring;
        }
        return ipstring;
    }

1 Ответ

7 голосов
/ 23 сентября 2011

Они пытаются заставить вас перестать предполагать, что IP-адрес является десятичным с точками IPv4-адреса. Они просто не могут получить IPv6 с земли, и это необходимо. Полностью свободных адресов по состоянию на пару месяцев назад.

Вы можете получить адрес IPv4, вам придется явно его определить:

        foreach (System.Net.IPAddress myipadd in myiphost.AddressList) {
            if (myipadd.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) {
                return myipadd.ToString();

            }
        }
        throw new WhatTheHeckException();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...