Взгляните на код на MSDN здесь, http://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkchange.aspx. Он показывает, как запрашивать сетевые адаптеры для определения своего состояния.
public class NetworkingExample
{
public static void Main()
{
NetworkChange.NetworkAddressChanged += new
NetworkAddressChangedEventHandler(AddressChangedCallback);
Console.WriteLine("Listening for address changes. Press any key to exit.");
Console.ReadLine();
}
static void AddressChangedCallback(object sender, EventArgs e)
{
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach(NetworkInterface n in adapters)
{
Console.WriteLine(" {0} is {1}", n.Name, n.OperationalStatus);
}
}
}
Фактически, существует более простой метод: NetworkInterface.GetIsNetworkAvailable(); – quzui
Он не требует прокрутки адаптеров ... – quzui