1. 程式人生 > >C# 取得本地計算機ip和本地計算機名稱的方法(內網)

C# 取得本地計算機ip和本地計算機名稱的方法(內網)

  在此前要引入一個名稱空間: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; }   //即使多個介面卡,也只取第一個
            }