1. 程式人生 > >計算機網卡信息獲取方法

計算機網卡信息獲取方法

sco nic lin main ip配置 pro sin 掩碼 標識

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();
     }
    }
 }

計算機網卡信息獲取方法