A partire dalla versione 2.0 del .NET Framework sono state introdotte delle API per gestire le interfacce di rete e quindi tutti gli aspetti della connettività. La classe principale è NetworkInterface che prima di tutto permette di conoscere se è disponibile una connessione valida.
// Stampa la disponibilità della rete bool network = NetworkInterface.GetIsNetworkAvailable(); Console.WriteLine("IsNetworkAvailable: {0}", network);
Attraverso il metodo GetAllNetworkInterfaces si possono ottenere tutte le interfacce installate sulla macchina per conoscere tutti i dati inerenti, come il MAC, la velocità, gli indirizzi IP unicast, multicast, i DNS, gateways ecc. Ecco quindi come sfogliare gli IPv4 delle interfacce di rete installate:
// Stampa il MAC della scheda di rete foreach (NetworkInterface networkInterface in NetworkInterface.GetAllNetworkInterfaces()) { PhysicalAddress pa = networkInterface.GetPhysicalAddress(); Console.WriteLine("MAC: {0}", pa); IPInterfaceProperties ipInterface = networkInterface.GetIPProperties(); // Stampa gli IPv4 foreach (UnicastIPAddressInformation ip in ipInterface.UnicastAddresses) if (ip.Address.AddressFamily == AddressFamily.InterNetwork) Console.WriteLine("IP: {0}", ip.Address); }
Infine con la classe NetworkChange si possono intercettare il cambio dello stato della connessione e il cambio degli indirizzi di rete associati, semplicemente con degli eventi.
// Intercetta il cambio di disponibilità della rete NetworkChange.NetworkAvailabilityChanged += new NetworkAvailabilityChangedEventHandler(NetworkChange_NetworkAvailabilityChan ged); // Intercetta il cambio di indirizzo NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(NetworkChange_NetworkAddressChanged); static void NetworkChange_NetworkAddressChanged(object sender, EventArgs e) { Console.WriteLine("Address changed"); } static void NetworkChange_NetworkAvailabilityChanged(object sender, NetworkAvailabilityEventArgs e) { Console.WriteLine("Available: {0}", e.IsAvailable); }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.