任何其他获取本地IP地址的方法

时间:2019-10-07 08:48:20

标签: c# numbers localhost ip hostname

我只是想获取本地IP地址,而不使用dns.getHostName方法

private string GetIpAddress(){
  if(Regex.IsMatch(Dns.GetHostName(), @"^\d")){
    throw new Exception("Begin with Alphabet in HostName")
  }

  IPHostEntry ipEntry = Dns.GetHostEntry(Dns.GetHostName());

  foreach(IPAddress address in ipEntry.AddressList){
    if(address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork){
          return address.Tostring();
        }
  }

}

在某些用户系统中,HostName(计算机名)必须由数字和字母组成。但是如今,某些用户系统已允许主机名只能包含数字。

我的客户端程序通过使用getHostName()方法获取本地IP。 但是当主机名只有数字时,getHostName()无法获取主机名。

所以我只想获得本地IP地址的另一种方法。

请帮助我。

1 个答案:

答案 0 :(得分:0)

稍加修改就尝试了代码,效果很好:

    private string GetIpAddress()
            {
                System.Net.IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName());

                foreach (System.Net.IPAddress address in ipEntry.AddressList)
                {
                    if (address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                    {
                        return address.ToString();
                    }
                }

                return "";
            }