我想向用户显示名称地址(请参阅www.ipchicken.com),但我唯一能找到的是 IP 地址。我尝试了反向查找,但也没有用:
IPAddress ip = IPAddress.Parse(this.lblIp.Text);
string hostName = Dns.GetHostByAddress(ip).HostName;
this.lblHost.Text = hostName;
但是 HostName 与 IP 地址相同。
谁知道我需要做什么?
谢谢。瞎扯。
我想向用户显示名称地址(请参阅www.ipchicken.com),但我唯一能找到的是 IP 地址。我尝试了反向查找,但也没有用:
IPAddress ip = IPAddress.Parse(this.lblIp.Text);
string hostName = Dns.GetHostByAddress(ip).HostName;
this.lblHost.Text = hostName;
但是 HostName 与 IP 地址相同。
谁知道我需要做什么?
谢谢。瞎扯。
编辑我之前的答案。尝试(在 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() 方法
看这篇文章
愚蠢的我...发布的代码是 100% 有效并且可以工作...但是在下面 10 行,我将 this.lblHost.Text 替换为另一个值,恰好是 IP 地址。
对不起。
还要记住,反向查找并不总是提供与正向 DNS 查找中使用的地址相同的地址。
例如对于 google.com,我得到 ip 64.233.167.99
但反向 dns 查找该 IP 返回 py-in-f99.google.com
并非所有 IP 地址都需要有主机名。我认为这就是你的情况。尝试使用更知名的 IP/主机名对,例如:
名称:google.com 地址:72.14.207.99
名称:google.com 地址:64.233.187.99
名称:google.com 地址:64.233.167.99
...我可能是错的
许多用户拥有相同的共享 IP 地址,因此您将无法找到他们的主机名。许多用户不一定会在公共 DNS 中拥有他们来自的 IP 的 DNS 记录。