在C#中如何取得網路介面相關資訊...
在C#中可以透過NetworkInterface這個類別的GetAllNetworkInterfaces方法來取得所有網路介面卡,接著再從個別網路卡的NetworkInterface得到IPInterfaceProperties以及PhysicalAddress兩個物件來分別取得IP和MAC的資訊。
請參考以下程式範例以及註解:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.NetworkInformation;
namespace Network
{
class Program
{
static void ListNetworkInterfaceInfo()
{
Console.WriteLine("{0,8:S}{1,18:S}{2,18:S}", "MAC", "IP", "Netmask");
Console.WriteLine("===================================================");
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); //取得所有網路介面類別(封裝本機網路資料)
foreach (NetworkInterface adapter in nics)
{
if (adapter.NetworkInterfaceType.ToString().Equals("Ethernet"))
{
//取得IPInterfaceProperties(可提供網路介面相關資訊)
IPInterfaceProperties ipProperties = adapter.GetIPProperties();
if (ipProperties.UnicastAddresses.Count > 0)
{
PhysicalAddress mac = adapter.GetPhysicalAddress(); //取得Mac Address
string name = adapter.Name; //網路介面名稱
string description = adapter.Description; //網路介面描述
string ip = ipProperties.UnicastAddresses[0].Address.ToString(); //取得IP
string netmask = ipProperties.UnicastAddresses[0].IPv4Mask.ToString(); //取得遮罩
Console.WriteLine("{0,13:S}{1,18:S}{2,18:S}", mac, ip, netmask);
}
}
}
}
static void Main(string[] args)
{
ListNetworkInterfaceInfo();
Console.WriteLine("請按任意鍵結束...");
Console.ReadKey();
}
}
}
執行結果:
MAC IP Netmask =================================================== 00055D81ACCD 192.168.38.73 255.255.0.0 485B39D07C3E 10.242.98.33 255.255.252.0 08002700E00F 192.168.100.10 255.255.255.0 005056C00001 172.16.232.1 255.255.255.0 005056C00008 172.16.199.1 255.255.255.0 請按任意鍵結束... |