.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 [ http://msdn2.microsoft.com/en-us/library/system.net.networkinformation.aspx ] 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 [ http://msdn2.microsoft.com/en-us/library/system.net.networkinformation.networkinterface.aspx ] 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 [ http://msdn2.microsoft.com/en-us/library/system.net.networkinformation.networkinterface.getallnetworkinterfaces.aspx ], 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 [ http://msdn2.microsoft.com/en-us/library/system.net.networkinformation.ipglobalproperties.aspx ] 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 [ http://msdn2.microsoft.com/en-us/library/system.net.networkinformation.ipglobalproperties.getipglobalproperties.aspx ], 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);
}