获取远程名称地址(不是IP)
时间:2020-03-05 18:41:03 来源:igfitidea点击:
我想向用户显示名称地址(请参阅www.ipchicken.com),但是我唯一能找到的就是IP地址。我尝试了反向查找,但也没有用:
IPAddress ip = IPAddress.Parse(this.lblIp.Text); string hostName = Dns.GetHostByAddress(ip).HostName; this.lblHost.Text = hostName;
但是HostName与IP地址相同。
谁知道我需要做什么?
谢谢。
瞎扯。
解决方案
回答
并非所有IP地址都需要具有主机名。我认为这就是情况。尝试使用更知名的IP /主机名对,例如:
Name: google.com Address: 72.14.207.99 Name: google.com Address: 64.233.187.99 Name: google.com Address: 64.233.167.99
...我可能只是错了
回答
许多用户具有相同的共享IP地址,因此我们将无法找到其主机名。而且,许多用户也不一定会在公共DNS中为其所来自的IP记录DNS记录。
回答
编辑我以前的答案。
尝试(在vb.net中):
Dim sTmp As String Dim ip As IPHostEntry sTmp = MaskedTextBox1.Text Dim ipAddr As IPAddress = IPAddress.Parse(sTmp) ip = Dns.GetHostEntry(ipAddr) MaskedTextBox2.Text = ip.HostName
Dns.resolve在.Net的更高版本中似乎已过时。如前所述,我认为问题是由IP地址没有固定名称或者由多个名称引起的。上面的示例适用于Google地址,但不适用于我们使用的具有几个相关名称的地址。
回答
我们需要System.Net的Dns.Resolve()方法
看这篇文章
回答
还要记住,反向查找不会总是提供与正向DNS查找中使用的地址相同的地址。
例如对于google.com,我的IP地址为64.233.167.99
但是对该IP进行反向DNS查找会返回py-in-f99.google.com
回答
愚蠢的我...发布的代码是100%有效的并且可以正常工作...但是低了10行,我用另一个值替换了this.lblHost.Text,恰好是ip地址。
对不起。