如何在 C# 中获取 IP 地址的 FQDN?

发布于 2024-10-19 04:10:10 字数 863 浏览 5 评论 0原文

一台机器上可能有多个可用的 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 地址的机器,使用其 fqdn 进行 ping 操作会返回正确的 IP。但是,上面的代码总是返回第一个 IP 的 FQDN。

我的设置如下:

IP1:
123.123.123.123
名称1

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;

可以正常工作。

On a machine there might be several IP addresses available. How can I find out all the belonging full qualified domain names (fqdn)?

Update:

I tried the following:

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

I have a machine with 2 IP addresses, the ping using their fqdn returns the correct IPs. However, the code above always return me the one fqdn of the first IP.

My setup looks as follows:

IP1:
123.123.123.123
Name1

IP2:
456.456.456.456
Name2

Both ping and nslookup returns correct value.

The problem is that both rows

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

returns "Name1" (instead of "Name1" and "Name2").

However, the codes

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

work correctly.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风吹过旳痕迹 2024-10-26 04:10:10

您将每个 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(可用域)。

You resolve each IP address to the netbios name.

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

For example if I resolve my IP i get:

PC-MYNAME.MYDOMAIN.local

Then you can also use ActiveDirectory to enumerate the CurrentForrest (available domains).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文