我想显示用户名称地址(请参阅www.ipchicken.com),但我唯一能找到的是IP地址。我尝试了反向查找,但也没有工作:
IPAddress ip = IPAddress.Parse(this.lblIp.Text);
string hostName = Dns.GetHostByAddress(ip).HostName;
this.lblHost.Text = hostName;
但HostName与IP地址相同。
谁知道我需要做什么?
感谢。 加布。
答案 0 :(得分:3)
编辑我以前的答案。 尝试(在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
在.Net的更高版本中,Dns.resolve似乎已过时。如前所述,我认为问题是由您的IP地址没有固定名称或具有多个名称引起的。上面的示例适用于Google地址,但不适用于我们使用的具有与之关联的几个名称的地址。
答案 1 :(得分:2)
您需要System.Net中的Dns.Resolve()方法
请参阅此article
答案 2 :(得分:2)
愚蠢的我...代码发布是100%有效且正常工作...但是10行更低我用另一个值替换了this.lblHost.Text,这恰好是ip地址。
对不起。
答案 3 :(得分:1)
另外请记住,反向查找不会总是提供与前向DNS查找中使用的地址相同的地址
例如,对于google.com,我获得了IP 64.233.167.99
但该IP的反向DNS查找返回py-in-f99.google.com
答案 4 :(得分:0)
并非所有IP地址都需要拥有主机名。我认为这就是你的情况。尝试使用更知名的IP /主机名对,例如:
姓名:google.com地址:72.14.207.99
姓名:google.com地址: 64.233.187.99
姓名:google.com地址: 64.233.167.99
......我可能只是错了
答案 5 :(得分:0)
许多用户拥有相同的共享IP地址,因此您将无法找到他们的主机名。并且许多用户不一定在公共DNS中拥有他们来自的IP的DNS记录。