C# 获取本地主机Ip地址

C# 获取本地主机Ip地址,c#,ip,C#,Ip,这有时会显示索引越界异常 这里面有什么问题。? 提前感谢,因为他们之前已经回答过了。你应该在地址表上核对你的长度。因为它并不总是2 下面是关于stackoverflow的另一个答案: 就像他们以前回答的那样。你应该在地址表上核对你的长度。因为它并不总是2 下面是关于stackoverflow的另一个答案: 试试这个方法,它对我很有效 foreach (var addr in Dns.GetHostEntry(string.Empty).AddressList) { if (addr.Addres

这有时会显示索引越界异常 这里面有什么问题。?
提前感谢

,因为他们之前已经回答过了。你应该在地址表上核对你的长度。因为它并不总是2

下面是关于stackoverflow的另一个答案:

就像他们以前回答的那样。你应该在地址表上核对你的长度。因为它并不总是2

下面是关于stackoverflow的另一个答案:

试试这个方法,它对我很有效

foreach (var addr in Dns.GetHostEntry(string.Empty).AddressList)
{
if (addr.AddressFamily == AddressFamily.InterNetwork)
Console.WriteLine("IPv4 Address: {0}", addr)
}

谢谢,

试试这个方法,它适合我

foreach (var addr in Dns.GetHostEntry(string.Empty).AddressList)
{
if (addr.AddressFamily == AddressFamily.InterNetwork)
Console.WriteLine("IPv4 Address: {0}", addr)
}

谢谢,

ip.AddressList[2]。您需要检查列表中有多少个元素。发生错误的原因是数组索引2>ip.AddressList.Lengthip.AddressList[2]。您需要检查列表中有多少个元素。发生错误的原因是数组索引2>ip.AddressList.Length
 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;
    }