dns.gethostbyname()

jae*_*e33 4 .net c# dns ipv4

我一直在网上搜索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;
    }
Run Code Online (Sandbox Code Playgroud)

Han*_*ant 7

他们试图让你停止假设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();
Run Code Online (Sandbox Code Playgroud)