4

我想向用户显示名称地址(请参阅www.ipchicken.com),但我唯一能找到的是 IP 地址。我尝试了反向查找,但也没有用:

IPAddress ip = IPAddress.Parse(this.lblIp.Text);
string hostName = Dns.GetHostByAddress(ip).HostName;
this.lblHost.Text = hostName;

但是 HostName 与 IP 地址相同。

谁知道我需要做什么?

谢谢。瞎扯。

4

6 回答 6

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

Dns.resolve 在更高版本的 .Net 中似乎已过时。如前所述,我认为该问题是由您的 IP 地址没有固定名称或具有多个名称引起的。上面的示例适用于 Google 地址,但不适用于我们使用的有几个名称相关联的地址。

于 2008-08-20T11:58:22.983 回答
2

您需要 System.Net 中的 Dns.Resolve() 方法

看这篇文章

于 2008-08-20T11:58:30.737 回答
2

愚蠢的我...发布的代码是 100% 有效并且可以工作...但是在下面 10 行,我将 this.lblHost.Text 替换为另一个值,恰好是 IP 地址。

对不起。

于 2008-08-20T12:36:25.280 回答
1

还要记住,反向查找并不总是提供与正向 DNS 查找中使用的地址相同的地址。

例如对于 google.com,我得到 ip 64.233.167.99
但反向 dns 查找该 IP 返回 py-in-f99.google.com

于 2008-08-20T12:03:35.590 回答
0

并非所有 IP 地址都需要有主机名。我认为这就是你的情况。尝试使用更知名的 IP/主机名对,例如:

名称:google.com 地址:72.14.207.99

名称:google.com 地址:64.233.187.99

名称:google.com 地址:64.233.167.99

...我可能是错的

于 2008-08-20T11:55:26.983 回答
0

许多用户拥有相同的共享 IP 地址,因此您将无法找到他们的主机名。许多用户不一定会在公共 DNS 中拥有他们来自的 IP 的 DNS 记录。

于 2008-08-20T11:56:09.633 回答