Using C #, what is the most reliable way to calculate the bandwidth speed of the network?


Using C# what is the most reliable way to calculate network bandwidth speed?

I've found a few examples using NetworkInterface, Performance Counters, native Win32 code, etc. but they all provide different results and none seem to match what other, already existing, tools are showing.

Any advice on the most reliable method to calculate network bandwidth speed in C#?

Edit: To clarify I'm looking to know how much bandwidth a specific interface is currently consuming.

Same Question:

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