c#之獲取本機主機名的四種方式總結
獲取本機主機名的四種方式
獲取本機 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;
檢索環(huán)境變量“computername”的值
string c = Environment.GetEnvironmentVariable("computername");
這是我的計算機的名稱:
先看一下它們運行的結果:
四種方法的區(qū)別
首先是第一種和第二種方法,它們返回的值是一樣的,都是本機的NetBIOS名稱,可以說這兩種方法是一樣的。那么什么是NetBIOS名稱呢?
如果想更改NetBIOS名稱,直接修改計算機名稱就可以了,只不過NetBIOS名稱只會取計算機名稱的前15個字符。
所以看上圖就可以發(fā)現(xiàn),NetBIOS名稱只有我計算機名稱的前15位。
第三種方法獲得的是計算機名,也可以獲得計算機全名。計算機全名就是你的主機名+主DNS后綴,默認的主DNS后綴是空的,但是自己可以更改。詳細情況請看上圖。
第四種方法獲得的是本機環(huán)境變量名為“computername”的值,此值也可以自己更改,但是默認的就是你的計算機名。
主機名和NetBIOS名稱的區(qū)別
那么主機名和NetBIOS名稱有什么區(qū)別呢?
其實它們的作用是相同的,都只是計算機的一個名稱而已,都是為了標識計算機的,利用網(wǎng)絡協(xié)議,可以將計算機名稱和ip地址映射。
它們的不同之處就在于:計算機名稱和ip地址映射時用的協(xié)議不同。
主機名和ip地址解析有兩種方法:
- 一是利用NetBIOS協(xié)議
- 二是通過DNS服務器
當使用NetBIOS協(xié)議時,使用的就是NetBIOS名稱;如果使用DNS服務器解析,使用的就是計算機名。
因為NetBIOS占用系統(tǒng)資源少、傳輸效率高,所以多適用于小型的局域網(wǎng),所以第一種和第二種方法返回的NetBIOS名稱只在局域網(wǎng)內(nèi)可見,而第三種方法返回的主機名是基于TCP/IP協(xié)議的。
下面舉個例子:
我們可以在“運行”里輸入 \\name\share
或 http://name/share
來訪問共享資源,此時的name確切的說是用的那個名稱呢?
\\NetBIOS名稱\share http://主機名/share
如果想看純英的解釋,請點擊下面這個鏈接:Difference between SystemInformation.ComputerName, Environment.MachineName, and Net.Dns.GetHostName
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
C#中調(diào)用VB中Inputbox類的實現(xiàn)方法
本文主要介紹在項目中引用Microsoft.VisualBasic,間接使用VB中的各種類庫的方法,或者自己創(chuàng)建函數(shù),調(diào)用自定義方法,以實現(xiàn)InputBox相關的功能。2016-05-05unity 文件流讀取圖片與www讀取圖片的區(qū)別介紹
這篇文章主要介紹了unity 文件流讀取圖片與www讀取圖片的對比分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04C#實現(xiàn)Excel動態(tài)生成PivotTable
這篇文章主要為大家詳細介紹了C#實現(xiàn)Excel動態(tài)生成PivotTable的相關方法,感興趣的小伙伴們可以參考一下2016-04-04