获取本地主机IP地址[重复]

Posted

技术标签:

【中文标题】获取本地主机IP地址[重复]【英文标题】:Getting local host Ip Address [duplicate] 【发布时间】:2014-06-01 11:23:43 【问题描述】:
public static string GetLocalIpAddress()
    
        string hostName = Dns.GetHostName();
        IPHostEntry ip = Dns.GetHostEntry(hostName);
        string IpAddress = Convert.ToString(ip.AddressList[2]);
        return IpAddress.ToString();
    

这有时会显示 Index out of bound 异常 应该是什么问题。? 提前致谢

【问题讨论】:

ip.AddressList[2]。您需要检查列表中有多少元素。 发生错误是因为数组索引2 > ip.AddressList.Length 【参考方案1】:

试试这个方法,对我有用。

 public static string GetIPAddress()
    
        IPHostEntry host;
        string localIP = "?";
        host = Dns.GetHostEntry(Dns.GetHostName());
        foreach (IPAddress ip in host.AddressList)
        
            if (ip.AddressFamily == AddressFamily.InterNetwork)
            
                localIP = ip.ToString();
            
        
        return localIP;
    

谢谢,

【讨论】:

【参考方案2】:
foreach (var addr in Dns.GetHostEntry(string.Empty).AddressList)

if (addr.AddressFamily == AddressFamily.InterNetwork)
Console.WriteLine("IPv4 Address: 0", addr)

【讨论】:

【参考方案3】:

正如他们之前回答的那样。您应该检查地址列表上的长度。因为它并不总是 2。

这里有关于 *** 的另一个答案: Getting valid IP from IPHostEntry

【讨论】:

以上是关于获取本地主机IP地址[重复]的主要内容,如果未能解决你的问题,请参考以下文章

获取本地设备的主机名和ip地址

Python获取当前主机(本地计算机)IP地址

Python获取当前主机(本地计算机)IP地址

获取本地主机名和 IP 地址的 C++ Windows 函数调用

如何在网络上自动获取本地IP地址及其原理

Java如何获取本地计算机的IP地址和主机名?