Status der Netzwerkverbindung abfragen.

  • Hey Leute, kurze Frage:

    Ist es machbar per Script den Status der Netzwerk, z.b. lan oder wlan Verbindung zu erfragen? also verbunden oder nicht verbunden?

    gruß timo

  • Hab da was im englischen Forum gefunden und etwas abgeändert...

    Spoiler anzeigen
    [autoit]


    #include <array.au3>

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

    Dim $aNetworkInfo
    $cI_CompName = @ComputerName
    Global $wbemFlagReturnImmediately = 0x10, _
    $wbemFlagForwardOnly = 0x20

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

    _ComputerGetNetworkCards($aNetworkInfo)
    _ArrayDisplay($aNetworkInfo)
    ; Spalte 20 zeigt den Status des jeweiligen Adapters. Details zu den status codes findest du hier:
    ; http://msdn.microsoft.com/en-us/library/…v=vs.85%29.aspx

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

    $aSearch = _ArrayFindAll($aNetworkInfo,2,0,0,1,0,20)
    For $i=0 to UBound($aSearch)-1
    ConsoleWrite("Verbundener Adapter gefunden: " & $aNetworkInfo[$aSearch[$i]][0] & @CRLF)
    Next

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

    $aSearch = _ArrayFindAll($aNetworkInfo,7,0,0,1,0,20)
    For $i=0 to UBound($aSearch)-1
    ConsoleWrite("Adapter ohne LAN Kabel gefunden: " & $aNetworkInfo[$aSearch[$i]][0] & @CRLF)
    Next

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

    ;===============================================================================
    ; Description: Returns the Network information in an array.
    ; Author: Jarvis J. Stubblefield (JSThePatriot) https://autoit.de/&quot;http://w…ions.com/&quot;
    ; Parameter(s): $aNetworkInfo - By Reference - Network Information array.
    ; Requirement(s): None
    ; Return Value(s): On Success - Returns array of Network Information.
    ; $aNetworkInfo[0][0] = Number of Network Cards
    ; $aNetworkInfo[$i][0] = Name ($i starts at 1)
    ; $aNetworkInfo[$i][1] = Adapter Type
    ; $aNetworkInfo[$i][2] = Adapter Type ID
    ; $aNetworkInfo[$i][3] = Auto Sense
    ; $aNetworkInfo[$i][4] = Description
    ; $aNetworkInfo[$i][5] = Availability
    ; $aNetworkInfo[$i][6] = Config Manager Error Code
    ; $aNetworkInfo[$i][7] = Config Manager User Config
    ; $aNetworkInfo[$i][8] = Creation Class Name
    ; $aNetworkInfo[$i][9] = Device ID
    ; $aNetworkInfo[$i][10] = Error Cleared
    ; $aNetworkInfo[$i][11] = Error Description
    ; $aNetworkInfo[$i][12] = Index
    ; $aNetworkInfo[$i][13] = Installed
    ; $aNetworkInfo[$i][14] = Last Error Code
    ; $aNetworkInfo[$i][15] = MAC Address
    ; $aNetworkInfo[$i][16] = Manufacturer
    ; $aNetworkInfo[$i][17] = Max Number Controlled
    ; $aNetworkInfo[$i][18] = Max Speed
    ; $aNetworkInfo[$i][19] = Net Connection ID
    ; $aNetworkInfo[$i][20] = Net Connection Status
    ; $aNetworkInfo[$i][21] = Network Addresses
    ; $aNetworkInfo[$i][22] = Permanent Address
    ; $aNetworkInfo[$i][23] = PNP Device ID
    ; $aNetworkInfo[$i][24] = Power Management Capabilities
    ; $aNetworkInfo[$i][25] = Power Management Supported
    ; $aNetworkInfo[$i][26] = Product Name
    ; $aNetworkInfo[$i][27] = Service Name
    ; $aNetworkInfo[$i][28] = Speed
    ; $aNetworkInfo[$i][29] = Status
    ; $aNetworkInfo[$i][30] = Status Info
    ; $aNetworkInfo[$i][31] = System Creation Class Name
    ; $aNetworkInfo[$i][32] = System Name
    ; $aNetworkInfo[$i][33] = Time Of Last Reset
    ; On Failure - @error = 1 and Returns 0
    ; @extended = 1 - Array contains no information
    ; 2 - $colItems isnt an object
    ; Author(s): Jarvis Stubblefield (support "at" vortexrevolutions "dot" com)
    ; Note(s):
    ;===============================================================================
    Func _ComputerGetNetworkCards(ByRef $aNetworkInfo)
    Local $colItems, $objWMIService, $objItem
    Dim $aNetworkInfo[1][34], $i = 1

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

    $objWMIService = ObjGet("winmgmts:\\" & $cI_Compname & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

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

    If IsObj($colItems) Then
    For $objItem In $colItems
    ReDim $aNetworkInfo[UBound($aNetworkInfo) + 1][34]
    $aNetworkInfo[$i][0] = $objItem.Name
    $aNetworkInfo[$i][1] = $objItem.AdapterType
    $aNetworkInfo[$i][2] = $objItem.AdapterTypeId
    $aNetworkInfo[$i][3] = $objItem.AutoSense
    $aNetworkInfo[$i][4] = $objItem.Description
    $aNetworkInfo[$i][5] = $objItem.Availability
    $aNetworkInfo[$i][6] = $objItem.ConfigManagerErrorCode
    $aNetworkInfo[$i][7] = $objItem.ConfigManagerUserConfig
    $aNetworkInfo[$i][8] = $objItem.CreationClassName
    $aNetworkInfo[$i][9] = $objItem.DeviceID
    $aNetworkInfo[$i][10] = $objItem.ErrorCleared
    $aNetworkInfo[$i][11] = $objItem.ErrorDescription
    $aNetworkInfo[$i][12] = $objItem.Index
    $aNetworkInfo[$i][13] = $objItem.Installed
    $aNetworkInfo[$i][14] = $objItem.LastErrorCode
    $aNetworkInfo[$i][15] = $objItem.MACAddress
    $aNetworkInfo[$i][16] = $objItem.Manufacturer
    $aNetworkInfo[$i][17] = $objItem.MaxNumberControlled
    $aNetworkInfo[$i][18] = $objItem.MaxSpeed
    $aNetworkInfo[$i][19] = $objItem.NetConnectionID
    $aNetworkInfo[$i][20] = $objItem.NetConnectionStatus
    $aNetworkInfo[$i][21] = $objItem.NetworkAddresses(0)
    $aNetworkInfo[$i][22] = $objItem.PermanentAddress
    $aNetworkInfo[$i][23] = $objItem.PNPDeviceID
    $aNetworkInfo[$i][24] = $objItem.PowerManagementCapabilities(0)
    $aNetworkInfo[$i][25] = $objItem.PowerManagementSupported
    $aNetworkInfo[$i][26] = $objItem.ProductName
    $aNetworkInfo[$i][27] = $objItem.ServiceName
    $aNetworkInfo[$i][28] = $objItem.Speed
    $aNetworkInfo[$i][29] = $objItem.Status
    $aNetworkInfo[$i][30] = $objItem.StatusInfo
    $aNetworkInfo[$i][31] = $objItem.SystemCreationClassName
    $aNetworkInfo[$i][32] = $objItem.SystemName
    $aNetworkInfo[$i][33] = __StringToDate($objItem.TimeOfLastReset)
    $i += 1
    Next
    $aNetworkInfo[0][0] = UBound($aNetworkInfo) - 1
    If $aNetworkInfo[0][0] < 1 Then
    SetError(1, 1, 0)
    EndIf
    Else
    SetError(1, 2, 0)
    EndIf
    EndFunc ;_ComputerGetNetworkCards

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

    Func __StringToDate($dtmDate)
    Return (StringMid($dtmDate, 5, 2) & "/" & _
    StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) _
    & " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate,13, 2))
    EndFunc ;__StringToDate Function created by SvenP Modified by JSThePatriot

    [/autoit]