c#之获取本机主机名的四种方式总结

来自:网络
时间:2023-07-24
阅读:
目录

获取本机主机名的四种方式

获取本机 NetBIOS 名称

lineLog.Computer = Environment.MachineName;

获取本机 NetBIOS 名称

string a = SystemInformation.ComputerName;

获取本机主机名,前提是引用 System.Net

using System.Net;
string b = Dns.GetHostName();
string d = Dns.GetHostEntry("localhost").HostName;

检索环境变量“computername”的值

string c = Environment.GetEnvironmentVariable("computername");

这是我的计算机的名称:

c#之获取本机主机名的四种方式总结

先看一下它们运行的结果:

c#之获取本机主机名的四种方式总结

四种方法的区别

首先是第一种和第二种方法,它们返回的值是一样的,都是本机的NetBIOS名称,可以说这两种方法是一样的。那么什么是NetBIOS名称呢?

c#之获取本机主机名的四种方式总结

如果想更改NetBIOS名称,直接修改计算机名称就可以了,只不过NetBIOS名称只会取计算机名称的前15个字符。

所以看上图就可以发现,NetBIOS名称只有我计算机名称的前15位。

第三种方法获得的是计算机名,也可以获得计算机全名。计算机全名就是你的主机名+主DNS后缀,默认的主DNS后缀是空的,但是自己可以更改。详细情况请看上图。

第四种方法获得的是本机环境变量名为“computername”的值,此值也可以自己更改,但是默认的就是你的计算机名。

c#之获取本机主机名的四种方式总结

主机名和NetBIOS名称的区别

那么主机名和NetBIOS名称有什么区别呢?

其实它们的作用是相同的,都只是计算机的一个名称而已,都是为了标识计算机的,利用网络协议,可以将计算机名称和ip地址映射。

它们的不同之处就在于:计算机名称和ip地址映射时用的协议不同。

主机名和ip地址解析有两种方法:

  • 一是利用NetBIOS协议
  • 二是通过DNS服务器

当使用NetBIOS协议时,使用的就是NetBIOS名称;如果使用DNS服务器解析,使用的就是计算机名。

因为NetBIOS占用系统资源少、传输效率高,所以多适用于小型的局域网,所以第一种和第二种方法返回的NetBIOS名称只在局域网内可见,而第三种方法返回的主机名是基于TCP/IP协议的。

下面举个例子:

我们可以在“运行”里输入 \\name\sharehttp://name/share来访问共享资源,此时的name确切的说是用的那个名称呢?

\\NetBIOS名称\share
http://主机名/share

如果想看纯英的解释,请点击下面这个链接:Difference between SystemInformation.ComputerName, Environment.MachineName, and Net.Dns.GetHostName

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

返回顶部
顶部