如何在C#。NET中查找本地计算机的FQDN?

如何在C#。NET中查找本地计算机的FQDN?,第1张

如何在C#/。NET中查找本地计算机的FQDN?

注意:此解决方案仅在针对.NET 2.0(及更高版本)框架时才有效。

using System;using System.Net;using System.Net.NetworkInformation;//...public static string GetFQDN(){    string domainName = IPGlobalProperties.GetIPGlobalProperties().DomainName;    string hostName = Dns.GetHostName();    domainName = "." + domainName;    if(!hostName.EndsWith(domainName))  // if hostname does not already include domain name    {        hostName += domainName;   // add the domain name part    }    return hostName;         // return the fully qualified name}

更新

由于很多人都评论说“
Sam的答案”更为简洁,所以我决定在答案中添加一些评论。

需要注意的最重要的事情是,我提供的代码 不等同 于以下代码:

Dns.GetHostEntry("LocalHost").HostName

在通常情况下,当机器联网并且是域的一部分时,两种方法通常会产生相同的结果,而在其他情况下,结果将有所不同。

当计算机不属于域时,输出将不同的情况。在这种情况下,

Dns.GetHostEntry("LocalHost").HostName
将返回,
localhost
而上述
GetFQDN()
方法将返回主机的NETBIOS名称。

当查找计算机FQDN的目的是记录信息或生成报告时,此区别很重要。大多数时候,我在日志或报告中使用此方法,随后将这些信息用于将信息映射回特定计算机。如果机器未联网,则

localhost
标识符将无用,而名称会提供所需的信息。

因此,最终取决于每个用户哪种结果取决于他们需要哪种方法。但是说这个答案不够简洁是错误的,充其量只是表面现象。

请参见输出不同的示例:http :
//ideone.com/q4S4I0



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5113618.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-17
下一篇2022-11-17

发表评论

登录后才能评论

评论列表(0条)

    保存