.NET framework 2.0 obsahuje rýchly a jednoduchý spôsob ako získať základné informácie o sieťovkách na lokálnom počítači.
System.Net.NetworkInformation namespace
Oblasť mien System.Net.NetworkInformation ponúka množstvo tried, ktoré sú primárne určené napr. na poskytovanie prístupu do sietí, premávku dát a informácie o sieťových adresách. Táto oblasť mien taktiež obsahuje triedy určené na pingovanie, pomocou ktorého je možné zistiť prístupnosť naprieč sieťou. Spomedzi tejto širokej škály nás budú najviac zaujímať triedy NetworkInterface a IPGlobalProperties.NetworkInterface class
Trieda NetworkInterface zapúzdruje dáta pre sieťové rozhrania známe aj ako adaptéry na lokálnom počítači. Inštancia tejto triedy sa nevytvára. Namiesto toho sa používa metóda GetAllNetworkInterfaces, ktorá vracia pole obsahujúce jednu inštanciu tejto triedy pre každé jedno sieťové rozhranie nachádzajúce sa na lokálnom počítači.IPGlobalProperties class
Trieda IPGlobalProperties poskytuje konfiguračné a štatistické informácie o sieťových rozhraniach a sieťovej pripojiteľnosti lokálneho počítača. Z dokumentácie je vidno, že obsahuje len zopár verejných vlastností (public properties), ale väčšie množstvo verejných metód (public methods) so širším uplatnením. Z týchto členov je pre nás dôležitá metóda GetIPGlobalProperties, ktorá vracia objekt IPGlobalProperties.Realizácia
Zdrojový kód, ktorý má realizovať naše požiadavky je celkom jednoduchý. Prvá vec,ktorú treba spraviť je vytvorenie objektov vyššie spomínaných tried NetworkInterface a IPGlobalProperties.
Následne ako je vidno z dokumentácie je možné jednoducho pristupovať k vlastnostiam jednej alebo druhej triedy. Výpis informácii o jednotlivých sieťovkách je robený pomocou cyklu foreach, ktorý vypíše požadované dáta konkrétnej sieťovky postupne z poľa objektov typu NetworkInterface, ktoré je uvedené na začiatku zdrojáku. Nižšie uvedený ukážkový kód možno nájsť na MSDN a je veľmi ľahko modifikovateľný podľa potrieb programátora.
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
IPGlobalProperties computerProperties = IPGlobalProperties.GetIPGlobalProperties();
Console.WriteLine("Interface information for {0}.{1} ", computerProperties.HostName, computerProperties.DomainName);
Console.WriteLine(" Number of interfaces .................... : {0}", nics.Length);
foreach(NetworkInterface adapter in nics)
{
IPInterfaceProperties properties = adapter.GetIPProperties();
Console.WriteLine();
Console.WriteLine(adapter.Description);
Console.WriteLine("==================================================================");
Console.WriteLine(" Interface type .......................... : {0}", adapter.NetworkInterfaceType);
Console.WriteLine(" Physical Address ........................ : {0}", adapter.GetPhysicalAddress().ToString());
Console.WriteLine(" Operational status ...................... : {0}", adapter.OperationalStatus);
Console.WriteLine(" Speed ................................... : {0} bps", adapter.Speed);
}