如何在c#中获取fqdn的ip地址?

时间:2011-02-24 11:21:54

标签: c# .net fqdn

在计算机上可能有多个IP地址可用。我怎样才能找到所有属于完全合格的域名(fqdn)?

更新

我尝试了以下内容:

IPHostEntry he = Dns.GetHostEntry(Environment.UserDomainName);
foreach (IPAddress ipAddress in he.AddressList)
{
    string x = ipAddress.ToString();
    string y = Dns.GetHostEntry(ipAddress.ToString()).HostName;
}

我有一台有2个IP地址的机器,ping使用他们的fqdn返回正确的IP。但是,上面的代码总是返回第一个IP的一个fqdn。

我的设置如下:

IP1:
123.123.123.123
NAME1

IP2:
456.456.456.456
NAME2

ping和nslookup都返回正确的值。

问题在于两行

Dns.GetHostEntry("123.123.123.123").HostName;
Dns.GetHostEntry("456.456.456.456").HostName;

返回“Name1”(而不是“Name1”和“Name2”)。

然而,代码

Dns.GetHostEntry("Name1").HostName;
Dns.GetHostEntry("Name2").HostName;

正常工作。

1 个答案:

答案 0 :(得分:2)

您将每个IP地址解析为netbios名称。

Dim hostEntry As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry("192.168.115.54")
Console.WriteLine(hostEntry.HostName)

例如,如果我解决了我的IP,我得到:

PC-MYNAME.MYDOMAIN.local

然后,您还可以使用ActiveDirectory枚举CurrentForrest(可用域)。