計算機網卡信息獲取方法
using System;
using System.Net.NetworkInformation;
namespace DNSGet
{
class Program
{
static void Main(string[] args)
{
//本地計算機上的網絡接口的對象,我的電腦裏面以太網網絡連接有兩個虛擬機的接口和一個本地接口
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in nics)
{
bool Pd1 = (adapter.NetworkInterfaceType == NetworkInterfaceType.Ethernet); //判斷是否是以太網連接
if (Pd1)
{
Console.WriteLine("網絡適配器名稱:" + adapter.Name);
Console.WriteLine("網絡適配器標識符:" + adapter.Id);
Console.WriteLine("適配器連接狀態:" + adapter.OperationalStatus.ToString());
IPInterfaceProperties ip = adapter.GetIPProperties(); //IP配置信息
if (ip.UnicastAddresses.Count > 0)
{
Console.WriteLine("IP地址:" + ip.UnicastAddresses[0].Address.ToString());
Console.WriteLine("子網掩碼:" + ip.UnicastAddresses[0].IPv4Mask.ToString());
}
if (ip.GatewayAddresses.Count > 0)
{
Console.WriteLine("默認網關:" + ip.GatewayAddresses[0].Address.ToString()); //默認網關
}
int DnsCount = ip.DnsAddresses.Count;
Console.WriteLine("DNS服務器地址:"); //默認網關
if (DnsCount > 0)
{
//其中第一個為首選DNS,第二個為備用的,余下的為所有DNS為DNS備用,按使用順序排列
for (int i = 0; i < DnsCount; i++)
{
Console.WriteLine(" " + ip.DnsAddresses[i].ToString());
}
}
Console.WriteLine("網絡接口速度:" + (adapter.Speed / 1000000).ToString("0.0") + "Mbps");
Console.WriteLine("接口描述:" + adapter.Description);
Console.WriteLine("適配器的媒體訪問控制 (MAC) 地址:" + adapter.GetPhysicalAddress().ToString());
Console.WriteLine("該接口是否只接收數據包:" + adapter.IsReceiveOnly.ToString());
Console.WriteLine("該接口收到的字節數:" + adapter.GetIPv4Statistics().BytesReceived.ToString());
Console.WriteLine("該接口發送的字節數:" + adapter.GetIPv4Statistics().BytesSent.ToString());
Console.WriteLine("該接口丟棄的傳入數據包數:" + adapter.GetIPv4Statistics().IncomingPacketsDiscarded.ToString());
Console.WriteLine("該接口丟棄的傳出數據包數:" + adapter.GetIPv4Statistics().OutgoingPacketsDiscarded.ToString());
Console.WriteLine("該接口有錯誤的傳入數據包數:" + adapter.GetIPv4Statistics().IncomingPacketsWithErrors.ToString());
Console.WriteLine("該接口有錯誤的傳出數據包數:" + adapter.GetIPv4Statistics().OutgoingPacketsWithErrors.ToString());
Console.WriteLine("該接口協議未知的數據包數:" + adapter.GetIPv4Statistics().IncomingUnknownProtocolPackets.ToString()); Console.WriteLine("---------------------------------------------------------------------\n");
}
}
Console.ReadLine();
}
}
}
計算機網卡信息獲取方法