如何使用 C# 或 VB.NET 获取当前的本地主机名? [复制]

Posted

技术标签:

【中文标题】如何使用 C# 或 VB.NET 获取当前的本地主机名? [复制]【英文标题】:How can I get the current local hostname using C# or VB.NET? [duplicate] 【发布时间】:2011-03-30 12:35:20 【问题描述】:

我需要获取当前运行应用程序的主机名。有什么想法吗?

【问题讨论】:

当标题说 c# 时,你为什么还要 yags vb.net。 C# 或 VB.NET ...任何都可以接受 【参考方案1】:

需要记住的是System.Environment.MachineName;System.Windows.Forms.SystemInformation.ComputerName; 会给你机器的NETBios 名称(限制为15 个字符)。

如果您想要完整的基于 TCP/IP 的主机名,您可以使用 Dns.GetHostName()

string hostName = System.Net.Dns.GetHostName();

或者你可以使用:

System.Environment.GetEnvironmentVariable("COMPUTERNAME");

这将返回安装期间设置的完整计算机名称。

【讨论】:

好吧,文档对它的实现方式有点含糊,但暗示它需要 a) 有效的网络连接,b) 到 DNS 服务器的往返,以及 c) DNS 实际上知道您的机器名称(它不必知道,除非您的服务器) @James Curran - 绝对。但是 Environment.MachineName 将计算机名称限制为 15 个字符的 NETBIOS 名称。 GetHostName 将检索基于 TCP/IP 的完整主机名。 System.Environment.GetEnvironmentVariable("COMPUTERNAME"); 仅适用于 Windows 如果代码在 IIS 上运行,这仍然有效吗?它会返回什么?像“www.mySiteAddress.com”这样的东西??【参考方案2】:

除非我弄错了你想做什么..

System.Environment.MachineName

【讨论】:

【参考方案3】:

要获得完全限定的名称,请使用:

 System.Net.Dns.GetHostEntry("").HostName

【讨论】:

【参考方案4】:

My 命名空间包含许多很棒的“帮助”函数,例如:

My.Computer.Name

【讨论】:

这似乎仅限于 VB.NET 并且是该语言专有的:msdn.microsoft.com/en-us/vstudio/ms789188.aspx 太好了,谢谢。 VB太可爱了。【参考方案5】:
System.Windows.Forms.SystemInformation.ComputerName;

【讨论】:

以上是关于如何使用 C# 或 VB.NET 获取当前的本地主机名? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

从网站获取 HTML ID 以填写信息并按下 c# 或 vb.net 中的按钮

如何使用正则表达式匹配从 xml 文件中搜索和替换包含占位符标记的文本。 VB.net 或 C#

如何在 C# 中为当前用户获取桌面路径?

如何在 ASP.net vb.net 中获取当前用户 ID 的电子邮件

将受保护字段限制为当前汇编 c# vb.net

vb.net 第四节 获取当前TCP连接情况 GetTcpTable