Geschwindigkeit und Typ einer Netzwerkkarte / Verbindung feststellen

  • Hallo,
    kennt jemand eine Möglichkeit wie ich den Typ und die Geschwindigkeit einer Netzwerkkarte / Verbindung, also LAN mit 100MBit/s, LAN mit GBit, WLAN mit 54MBit/s, VPN Verbindung …. feststellen kann?

    Habe es bereits über WMI versucht aber Win32_NetworkAdapter.MaxSpeed oder Win32_NetworkAdapter.Speed enthalten bei mir keine Werte. Auch Forschungen mit dem „AutoIt Scriptomatic“ haben nichts gebracht.

    Gruß Ingo

  • Hallo Johannes,
     habe ich zuerst auch gedacht. Ist aber nicht wirklich eine Lösung denn ich habe Systeme mit verschiedenen Sprachen. Außerdem ist auch dort die Geschwindigkeit der Verbindung nicht mit vermerkt. Aus der Beschreibung der Verbindung versuche ich einiges zu ermitteln, indem ich nach bestimmten Worten suche. Also z.B. Gigabit oder WiFi. Aber eine echte Lösung ist das ebenfalls nicht, denn die verwendeten Texte für die Beschreibung der Adapter sind sehr unterschiedlich bei den verschiedenen Herstellern.
      
     Gruß Ingo

  • Also, auf

    http://www.autoitscript.com/forum/topic/30…twork-adapters/

    habe ich ein Script gefunden was die Hardware-Infos ermittelt.

    Den Abschnitt

    [autoit]

    For $object in $colNIC
    $Pcinfo = $pcinfo & $object.name & @CRLF
    Next

    [/autoit]

    habe ich mal wie folgt gemäß dieser Webseite http://msdn.microsoft.com/en-us/library/…6(v=vs.85).aspx
    erweitert:

    [autoit]

    For $object in $colNIC
    For $object in $colNIC
    $Pcinfo = $pcinfo & $object.name & @CRLF
    $Pcinfo = $pcinfo & "LAN-Speed = " & $object.speed /1000 & "Bit/s" & @CRLF
    $Pcinfo = $pcinfo & "LAN-Speed = " & $object.speed / 1000000 & "MBit/s" & @CRLF
    Next

    [/autoit]

    Und bei mir (PC an LAN Netzwerk) meldet er bei einer 1GBit/s Verbindung 1000000000 (also 1.000.000.000 = 1GBits/s) und wenn ich es umstelle z.B. auf 10MBit/s in den Netzwerkkarteneinstellungen, dann meldet er 10000000 (also 10.000.000 = 10MBits).

    Auch meine 2 anderen Netzwerkschnittstellen (von VMware Workstation) meldet er korrekt.

    Mit WLAN kann ich es gerade nicht testen (Notebook steht beim Kunden) - aber das sieht doch gut aus.

    Hier noch mal das ganze Script inklusive meiner Änderung:

    Spoiler anzeigen
    [autoit]

    ; Author: Chaos2
    ; Script Function: output basic hardware info
    ;
    ; ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    $objWMIService = objget("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")

    [/autoit] [autoit][/autoit] [autoit]

    $colSettings = $objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
    $colMemory = $objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
    $colCPU = $objWMIService.ExecQuery("Select * from CIM_Processor")
    $colVideoinfo = $objWMIService.ExecQuery("Select * from Win32_VideoController")
    $colSound = $objWMIService.ExecQuery("Select * from Win32_SoundDevice")
    $colMouse = $objWMIService.ExecQuery("Select * from Win32_PointingDevice")
    $colMonitor = $objWMIService.ExecQuery("Select * from Win32_DesktopMonitor")
    $colNIC = $objWMIservice.ExecQuery("Select * from Win32_NetworkAdapter WHERE Netconnectionstatus = 2")
    Dim $pcinfo

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    For $object in $colCPU
    $PcInfo = $pcinfo & StringStripWS($object.Name,1) & @CRLF
    Next

    [/autoit] [autoit][/autoit] [autoit]

    For $objOperatingSystem in $colSettings
    $PcInfo = $PcInfo & $objOperatingSystem.Caption & " Build " & $objOperatingSystem.BuildNumber & " Servicepack " & $objOperatingSystem.ServicePackMajorVersion & "." & $objOperatingSystem.ServicePackMinorVersion & @CRLF
    $PcInfo = $PcInfo & "Available Physical Memory: " & String(Int(Number($objOperatingSystem.FreePhysicalMemory) / 1024)) & " Mb" & @CRLF
    Next

    [/autoit] [autoit][/autoit] [autoit]

    For $object in $colMemory
    $PcInfo = $PcInfo & "Total Physical Memory: " & String(Int(Number($object.TotalPhysicalMemory) / (1024 * 1024))) & " Mb" & @CRLF
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $objFSO = objCreate("Scripting.FileSystemObject")
    $colDrives = $objFSO.Drives

    [/autoit] [autoit][/autoit] [autoit]

    $Opticaldrives = "Opticaldrives : "

    [/autoit] [autoit][/autoit] [autoit]

    For $object in $colDrives
    If ($object.DriveType == 2) then
    $PcInfo = $PcInfo & "Total space on : " & $object.DriveLetter & ":\ (" & $object.VolumeName & ") = " & String(Round((Number($object.TotalSize) / (1024 * 1024 * 1024)),2)) & " Gb" & @CRLF
    $PcInfo = $PcInfo & "Free space on : " & $object.DriveLetter & ":\ (" & $object.VolumeName & ") = " & String(Round((Number($object.FreeSpace) / (1024 * 1024 * 1024)),2)) & " Gb" & @CRLF
    Else
    $Opticaldrives = $Opticaldrives & $object.DriveLetter & ":\ "
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $PcInfo = $PcInfo & $Opticaldrives & @CRLF

    [/autoit] [autoit][/autoit] [autoit]

    For $object in $colVideoinfo
    $PcInfo = $PcInfo & "Video card: " & $object.Description & @CRLF
    Next

    [/autoit] [autoit][/autoit] [autoit]

    For $object in $colSound
    $PcInfo = $PcInfo & "Sound device: " & $object.Description & @CRLF
    Next

    [/autoit] [autoit][/autoit] [autoit]

    For $object in $colMouse
    $PcInfo = $PcInfo & "Mouse : " & $object.Description & @CRLF
    Next

    [/autoit] [autoit][/autoit] [autoit]

    For $object in $colMonitor
    $PcInfo = $PcInfo & "Monitor : " & $object.Description & @CRLF
    Next

    [/autoit] [autoit][/autoit] [autoit]

    For $object in $colNIC
    $Pcinfo = $pcinfo & $object.name & @CRLF
    $Pcinfo = $pcinfo & "LAN-Speed = " & $object.speed /1000 & "Bit/s" & @CRLF
    $Pcinfo = $pcinfo & "LAN-Speed = " & $object.speed / 1000000 & "MBit/s" & @CRLF
    Next
    ClipPut( $pcinfo )
    MsgBox(48,"PCinfo",$PcInfo)
    MsgBox( 48, "PCinfo", "Information was copied to clipboard", 5)

    [/autoit]

    Zur Info - funktionierte unter Windows 7 (64bit) - und wäre gespannt auf die Info ob das auch bei WLAN's funktioniert

  • Hallo,
    genau diese Abfrage liefert bei mir unter Windows XP immer 0 MBit zurück. Habe ich auf verschiedenen Systemen getestet

    Hier als Beispiel die Ausgabe von deinem Programm:

    Spoiler anzeigen


    Intel Pentium III Xeon-Prozessor
    Microsoft Windows XP Professional Build 2600 Servicepack 3.0
    Available Physical Memory: 1145 Mb
    Total Physical Memory: 1991 Mb
    Opticaldrives : G:\ U:\
    Video card: ConfigMgr Remote Control Driver
    Video card: Mobile Intel(R) 4 Series Express Chipset Family
    Video card: Mobile Intel(R) 4 Series Express Chipset Family
    Sound device: Conexant High Definition SmartAudio 221
    Mouse : Microsoft USB Wheel Mouse Optical
    Mouse : PS/2 TrackPoint
    Monitor : Standardmonitor
    Monitor : Plug and Play Monitor
    Monitor : Plug and Play Monitor
    Intel(R) 82567LM Gigabit Network Connection
    LAN-Speed = 0Bit/s
    LAN-Speed = 0MBit/s
    Intel(R) WiFi Link 5100 AGN
    LAN-Speed = 0Bit/s
    LAN-Speed = 0MBit/s


    Gruß Ingo

  • Hallo,
    hab mir zwar eine „Krücke“ gebaut, indem ich in der Beschreibung des Adapters nach bestimmten Worten suche. Aber wirklich schön ist das nicht.
    Eventuell kennt ja noch jemand eine andere Möglichkeit außer WMI.

    Gruß Ingo

  • Ich habe gerade mal bei anderen Methoden geeschnüffelt - auch PowerShell etc. - aber alle greifen im Grunde genommen wieder auf die

    Win32_NetworkAdapter

    zurück - die nun mal den Fehler hat.
    Unter den Eigenschaften der LAN-Verbindung wird die Geschwindigkeit ja angezeigt (aber nicht ob es Halb- oder Vollduplex ist) ... jetzt müsste man wissen wie die an den Wert kommen.

  • Hallo,
    auch in der Registry habe ich nicht wirklich eine Stelle gefunden an der das abgefragt werden kann. Die Einstellungen der Karten sind dort zwar vorhanden aber nicht die Geschwindigkeit. :(

    Gruß Ingo

  • Sucht mal nach iphlpapi.dll mit GetIfEntry und GetPerAdapterInfo an. Damit werden die notwendigen Infos geliefert.

    Ich hab damit mal angefangen, aber nicht fertig gemacht: Klick mich

    happy computing!
    R@iner