2012-06-20 13 views
5

Licznik perfmon używa różnych nazw NIC w porównaniu do ipconfig/all i c wywołanie systemowe # jak widać poniżej (to jest z ipconfig/all)C licznik # wydajność i nic nazwa

Ethernet adapter HHHH:  

    Connection-specific DNS Suffix . : 

    Description . . . . . . . . . . . : HP NC364T PCIe Quad Port Gigabit Server Adapter #3 
    Physical Address. . . . . . . . . : 00-1F-29-0D-26-59 
    DHCP Enabled. . . . . . . . . . . : No 
    Autoconfiguration Enabled . . . . : Yes 
    IPv4 Address. . . . . . . . . . . : 166.49.47.10(Preferred) 
    Subnet Mask . . . . . . . . . . . : 255.255.255.240 
    Default Gateway . . . . . . . . . : 
    NetBIOS over Tcpip. . . . . . . . : Disabled 
using System.Net.NetworkInformation; 
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces(); 

Otrzymuję HP NC364T PCIe Quad Port Gigabit Server Adapter #3. Dokładnie tak samo jak ipconfig. ALE perfmon używa HP NC364T PCIe Quad Port Gigabit Server Adapter _3 (podkreślenie zamiast skrótu). Czy muszę użyć innego połączenia, aby uzyskać takie samo dokładne imię jak to, co ma perfmon? Jeśli tak, co to jest?

+0

Otrzymujesz "Gigabitowy serwer sieciowy HP NC364T z czterema portami PCI 3 # 3" 'również za pomocą WMI – GETah

Odpowiedz

1

Osobiście użyłbym rejestru do listy urządzeń sieciowych w natywny sposób. Istnieje wiele różnych sposobów pobierania informacji, ale nie wszystkie sposoby wyświetlania informacji takich jak system. Możliwe, że przykładowy kod może wyglądać tak (nie w pełni obsługiwany błąd). To działa dla mnie na Windows Vista 32/64 bit i 7. To trochę różni się od klasy NET, ale uważa, że ​​robi to w ten sam sposób. Przestrzeń nazw "przy użyciu Microsoft.Win32" musi zostać dodana, aby uruchomić kod.

private void button1_Click(object sender, EventArgs e) 
    { 
     ListPCIDevices(false, listBox1); 
    } 

    public static void ListPCIDevices(bool ListOnlyNetworkDevices, ListBox LB) 
    { 
     string NetKey = @"SYSTEM\ControlSet001\Enum\PCI"; 
     using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(NetKey)) 
     { 
      foreach (string skName in rk.GetSubKeyNames()) 
      { 
       using (RegistryKey sk = rk.OpenSubKey(skName)) 
       { 

        foreach (string skSubName in sk.GetSubKeyNames()) 
        { 

         using (RegistryKey ssk = sk.OpenSubKey(skSubName)) 
         { 

          object ItemName = ssk.GetValue("DeviceDesc"); 
          object ItemCat = ssk.GetValue("Class"); 
          if (ItemCat == null) { ItemCat = "Unknown"; } 

          if ((ItemName != null) && ((ItemCat.ToString() == "Net")||(!ListOnlyNetworkDevices))) 
          { 
           LB.Items.Add(ItemName.ToString().Split(';')[1]); 
          } 

         } 
        } 
       } 
      } 
     } 
    }