我只是想获取本地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地址的另一种方法。
请帮助我。
答案 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 "";
}