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 of exception 它应该是什么问题。 提前谢谢
答案 0 :(得分:7)
尝试这种方法,它对我有用。
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;
}
谢谢,
答案 1 :(得分:1)
foreach (var addr in Dns.GetHostEntry(string.Empty).AddressList)
{
if (addr.AddressFamily == AddressFamily.InterNetwork)
Console.WriteLine("IPv4 Address: {0}", addr)
}
答案 2 :(得分:0)
他们以前回答过。你应该在地址列表上查看你的长度。因为它不会总是2。
这里有关于stackoverflow的另一个答案: Getting valid IP from IPHostEntry