获取远程名称地址(不是IP)

时间:2008-08-20 11:53:00

标签: .net asp.net

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

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

但HostName与IP地址相同。

谁知道我需要做什么?

感谢。 加布。

6 个答案:

答案 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记录。