网上查了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;
}
最佳答案
他们试图让您停止假设 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();
关于c# - dns.gethostbyname(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7532842/