2010-11-17 2 views
1

image showing the online duration of network deviceКак получить онлайн-продолжительность сетевого устройства?

Я хочу, чтобы моя программа C# отображала продолжительность работы сетевого устройства в сети. Я пробовал NetworkInterface класс, но у него нет этой информации.

+0

У WMI, вероятно, есть счетчик производительности где-то. Я искал 5 минут, я не мог найти его, но это, вероятно, в менее очевидном месте. – Aren

+0

Будет ли ли DHCP-лиза полученным временем ближе к длительности сети? – vishnu

ответ

1

Попробуйте получить его через RAS (служба удаленного доступа) с помощью DotRas (http://dotras.codeplex.com/), который «Предоставляет компоненты удаленного доступа (RAS) для языков .NET, таких как C#, VB.NET и C++ CLR», как указано на вебсайте.

Проверка функции RasGetConnectionStatistics (MSDN documentation) Я нашел, что она возвращает структуру (RAS_STATS), в которой есть поле «dwConnectDuration».

Надеемся, что DotRas предоставит вам простой способ доступа к этой функции на C# вместе со всеми возвращаемыми данными.

Ссылки:

http://bytes.com/topic/net/answers/484607-bytes-sent-received-network-adapter http://channel9.msdn.com/forums/TechOff/69065-Creating-a-RAS-connection-with-C/

1

Прежде всего, вы должны найти этот сетевой интерфейс устройства. Вы можете сделать это, используя GetAllNetworkInterfaces(). Теперь у вас есть сетевой интерфейс. После этого сетевой интерфейс отправит этот меток.

static void getCurrentNicLifeTime(NetworkInterface adapter) 
    { 
     IPInterfaceProperties adapterProperties = adapter.GetIPProperties(); 

     UnicastIPAddressInformationCollection uniCast = adapterProperties.UnicastAddresses; 

     if (uniCast.Count > 0) 
     { 
      foreach (UnicastIPAddressInformation uni in uniCast) 
      { 
       DateTime when; 
       when = DateTime.UtcNow + TimeSpan.FromSeconds(uni.AddressValidLifetime) - TimeSpan.FromSeconds(864000); 
       when = when.ToLocalTime(); 

       Console.WriteLine(DateTime.UtcNow.ToLocalTime() - when); 
      } 
     } 
    } 

Вы также можете изучить пример this.

Смежные вопросы