目录
  • 获取本机主机名的四种方式
  • 四种方法的区别
  • 主机名和NetBIOS名称的区别
    • 那么主机名和NetBIOS名称有什么区别呢?
  • 总结

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

    获取本机 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

    总结

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

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。