46

Is there a way to detect the network speed and bandwidth usage in C#? Even pointers to open-source components are welcome.

Donald Duck
  • 8,409
  • 22
  • 75
  • 99
Mats
  • 14,902
  • 33
  • 78
  • 110

3 Answers3

34

Try using the System.Net.NetworkInformation classes. In particular, System.Net.NetworkInformation.IPv4InterfaceStatistics ought to have some information along the lines of what you're looking for.

Specifically, you can check the bytesReceived property, wait a given interval, and then check the bytesReceived property again to get an idea of how many bytes/second your connection is processing. To get a good number, though, you should try to download a large block of information from a given source, and check then; that way you should be 'maxing' the connection when you do the test, which should give more helpful numbers.

Nasreddine
  • 36,610
  • 17
  • 75
  • 94
GWLlosa
  • 23,995
  • 17
  • 79
  • 116
9

You should be able to calculate everything you need from the IPGlobalStatistics class.

Randolpho
  • 55,384
  • 17
  • 145
  • 179
1

If you only care about the negotiated speed, you can look at the NetworkInterface.Speed property

MSDN NetworkInterface.Speed

BDeC
  • 27
  • 8