#include <Array.au3>
$iTimer = TimerInit()
$aAdapter = _Win32NetworkAdapter()
ConsoleWrite('Fehler: ' & @error & @CR & 'Zeit: ' & Int(TimerDiff($iTimer)) & ' ms' & @CR)
_ArrayDisplay($aAdapter)





Func _Win32NetworkAdapter($strComputer = 'Localhost')
    Local $aReturn[1][12] = [[ _
            'Hersteller:', 'Name:', 'Adapter-Typ:', 'Kennung:', _
            'MAC-Adresse:', 'Adresstyp:', 'DHCP-Server:', 'IP erhalten:', _
            'IP läuft ab:', 'IP-Adresse:', 'Subnetzmaske:', 'Standardgateway:']]
    Local $x = 0, $objWMIService, $colItems
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapter WHERE Netconnectionstatus = 2', 'WQL', 0x30)
    If Not IsObj($colItems) Then Return SetError(2, 0, 0)
    For $objItem In $colItems
        $x += 1
        ReDim $aReturn[$x + 1][12]
        $aReturn[$x][0] = $objItem.Manufacturer
        $aReturn[$x][1] = $objItem.Name
        $aReturn[$x][2] = $objItem.AdapterType
        $aReturn[$x][3] = $objItem.NetConnectionID
        $aReturn[$x][4] = $objItem.MACAddress
        $colItems2 = $objWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapterConfiguration', 'WQL', 0x30)
        If IsObj($colItems2) Then
            For $objItem2 In $colItems2
                If $objItem.Caption = $objItem2.Caption Then
                    If $objItem2.IPEnabled = -1 Then
                        If $objItem2.DHCPEnabled = -1 Then
                            $aReturn[$x][5] = 'von DHCP zugewiesen'
                            $aReturn[$x][6] = $objItem2.DHCPServer
                            $aReturn[$x][7] = _WMIDateStringToDate($objItem2.DHCPLeaseObtained)
                            $aReturn[$x][8] = _WMIDateStringToDate($objItem2.DHCPLeaseExpires)
                        Else
                            $aReturn[$x][5] = 'Manuell konfiguriert'
                        EndIf
                        $aReturn[$x][9] = $objItem2.IPAddress(0)
                        $aReturn[$x][10] = $objItem2.IPSubnet(0)
                        $aReturn[$x][11] = $objItem2.DefaultIPGateway(0)
                    EndIf
                EndIf
            Next
        EndIf
    Next
    Return $aReturn
EndFunc   ;==>_Win32NetworkAdapter

Func _WMIDateStringToDate($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   ;==>_WMIDateStringToDate




