Maximal Geschwindigkeit von einem Netzwerkadapter heraus finden

28/07/2008 - 11:15 von Michele | Report spam
Hallo die Damen und Herren

Ich schreibe gerade ein kleines Programm das mir die aktuellen Werte der
Wlan Verbindung anzeigt. Nun komm ich nicht dahinter ob es möglich ist die
maximal Geschwindigkeit des Adapters heraus zu bekommen. Das wàre wichtig
weil das Programm im Augenblick nur meinen fest eingetragenen Wert zum
berechnen der Angezeige nimmt. Ich benutze zum Auslesen der Wlan Werte die
Native Wifi API von CodePlex.com. Wenn es da was anderes interesanntes gibt
her damit :)

Geht das überhaupt was ich möchte?
Vielleicht muss (kann) ich eine DLL über P/Invoke einbinden?

Vielen dank

Michele
 

Lesen sie die antworten

#1 Kerem Gümrükcü
28/07/2008 - 14:10 | Warnen spam
Hallo Michelle,

Geht das überhaupt was ich möchte?



Ja, geht aber schon etwas mehr in Richtung Low-Level. Velleicht
geht da auch was mit WMI, SNMP, bin mir da recht sicher mit SNMP,
aber ich kann Dir die Low-Level Variante anbieten:

"DeviceIoControl(..)" mit "IOCTL_NDIS_QUERY_GLOBAL_STATS"
in Verbindung mit "OID_GEN_XMIT_LINK_SPEED", "OID_GEN_RCV_LINK_SPEED",
"OID_GEN_LINK_SPEED_EX"

Das alles kannst Du Dir mit DeviceIoControl(...) holen:
http://www.pinvoke.net/default.aspx...ntrol.html

Im allgemeinen kannst Du Dir mal die "NDIS Network Interface OIDs"
ansehen:

Ich sehe, das die WMI "CIM_NetworkAdapter" Klasse eine Eigenschaft
hat, die "MaxSpeed" heisst, das wàre sicher einfacher für dich,..

Also, es geht per WMI, per Windows API und per SMNP sollte
es auch gehen...


Ah, ich sehe gerade, das Net Framework kann das auch, hier ist
sogar Code aus der MSDN:

//using System.Net.NetworkInformation

NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in adapters)
{
IPInterfaceProperties properties = adapter.GetIPProperties();
IPv4InterfaceStatistics stats = adapter.GetIPv4Statistics();
Console.WriteLine(adapter.Description);
Console.WriteLine(" Speed .: {0}",
adapter.Speed);
Console.WriteLine(" Output queue length: {0}",
stats.OutputQueueLength);
}


So, ich glaube, jetzt hàtten wir das meiste,


Grüße

Kerem

Beste Grüsse / Best regards / Votre bien devoue
Kerem Gümrükcü
Latest Project: http://www.codeplex.com/restarts
Latest Open-Source Projects: http://entwicklung.junetz.de
"This reply is provided as is, without warranty express or implied."

Ähnliche fragen