C# 取得本地計算機ip和本地計算機名稱的方法(內網)
阿新 • • 發佈:2019-01-23
在此前要引入一個名稱空間:System.Net;
要取得計算機的資訊,會用到System.Net中的Dns類,Dns.GetHostName()可以取得計算機的名稱,而要取得IP,要先獲得計算機的名稱,然後通過名稱取得IP地址,取得IP地址的方法是:Dns.GetHostAddresses("hostName");一般要取得本地計算機的Ip,只要先取得計算機名稱,再將計算機名稱填入到hostName就可以了:Dns.GetHostAddresses(Dns.GetHostName());
Dns.GetHostAddresses(Dns.GetHostName());呼叫這函式會返回一個IPAddress類的陣列,因此,要建立一個IPAddress型別的陣列物件來接收,先返回的元素一般是IPV6的地址,然後再返回IPV4的,因此,如果要獲取IPV4的地址的話,要判斷IPAddress的物件的AddressFamily屬性是否為InterNetwork。
IPAddress[] ips; //定義IPAddress類陣列物件ips用於存放獲取出來的IP ips = Dns.GetHostAddresses(Dns.GetHostName()); //取得計算機內網IP,其中Dns.GetHostName()是取得計算機名稱 Console.WriteLine("GetHostAddresses({0}) returns:", Dns.GetHostName()); foreach (IPAddress ip in ips) //遍歷陣列,取出第一個IPV4的地址 { if (ip.AddressFamily.ToString() == "InterNetwork") { Console.Write(" {0}", ip); break; } //即使多個介面卡,也只取第一個 }