IP und weitere Daten auslesen

  • Hallo,

    ich würde gern die aktuelle IP, Subnetzmaske, DNS 1 und 2 und Gateway zu einem bekannten Netzwerkadapter (z.B. LAN-Verbindung) in einer MsgBox anzeigen lassen (Windows 7 und Windows XP).

    Ich habe im Forum nach Lösungen gesucht, aber nur viel umfangreichere gefunden, die ich nicht durchschaue. Das würde ich aber gern - will ja schließlich etwas lernen dabei.

    Vielleicht hat jemand eine Idee und kann auch zwei drei Sätze zum Vorgehen schreiben. Wäre nett.

    Grüße

  • Probiere es mal mit WMI:

    Spoiler anzeigen
    [autoit]


    ;Coded by UEZ 2009
    #AutoIt3Wrapper_Change2CUI=y
    #AutoIt3Wrapper_UseUpx=n

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

    $oMyError = ObjEvent("AutoIt.Error", "oMyError") ; Install a custom error handler

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

    Global $ip = "localhost"
    If $CmdLine[0] > 0 Then $ip = $CmdLine[1]

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

    $objWMIService = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & $ip & "\root\cimv2")

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

    MsgBox(0, "Network Adapter Configuration", GetWMI($ip))

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

    Func GetWMI($srv)
    Local $Net_Description, $Net_Adapter, $Net_IP, $Net_Subnet, $Net_GW, $Net_MAC, $Net_DNSSearchOrder, $Net_DNSDomainSuffixSearchOrder, $Net_Wins1, $Net_Wins2, $Net_DHCP_Server
    $Network = ""
    $colItems = $objWMIService.ExecQuery("SELECT DHCPServer, Description, WINSPrimaryServer, WINSSecondaryServer, MACAddress, DefaultIPGateway, IPAddress, IPSubnet, DNSServerSearchOrder, DNSDomainSuffixSearchOrder FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True", "WQL", 0x30)
    $col2Items = $objWMIService.ExecQuery("SELECT MACAddress, NetConnectionID FROM Win32_NetworkAdapter")

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

    If IsObj($colItems) Then
    $Network = ""
    For $objItem In $colItems
    $Net_Adapter = ""
    $Net_Description = ""
    $Net_DHCP_Server = ""
    $Net_DNSSearchOrder = ""
    $Net_DNSDomainSuffixSearchOrder = ""
    $Net_GW = ""
    $Net_IP = ""
    $Net_MAC = ""
    $Net_Subnet = ""
    $Net_Wins1 = ""
    $Net_Wins2 = ""

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

    $Net_Description = $objItem.Description

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

    If IsObj($col2Items) Then
    For $obj2Item In $col2Items
    If $objItem.MACAddress = $obj2Item.MACAddress And $obj2Item.NetConnectionID <> "" Then
    $Net_Adapter = $obj2Item.NetConnectionID
    EndIf
    Next
    EndIf

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

    $Net_Wins1 = $objItem.WINSPrimaryServer
    $Net_Wins2 = $objItem.WINSSecondaryServer
    $Net_MAC = $objItem.MACAddress

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

    For $x = 0 To UBound($objItem.IPAddress) - 1
    $Net_IP &= $objItem.IPAddress($x) & ", "
    Next
    $Net_IP = StringTrimRight($Net_IP, 2)

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

    For $x = 0 To UBound($objItem.IPSubnet) - 1
    $Net_Subnet &= $objItem.IPSubnet($x) & ", "
    Next
    $Net_Subnet = StringTrimRight($Net_Subnet, 2)

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

    For $x = 0 To UBound($objItem.DefaultIPGateway) - 1
    $Net_GW &= $objItem.DefaultIPGateway($x) & ", "
    Next
    $Net_GW = StringTrimRight($Net_GW, 2)

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

    For $x = 0 To UBound($objItem.DNSServerSearchOrder) - 1
    $Net_DNSSearchOrder &= $objItem.DNSServerSearchOrder($x) & ", "
    Next
    $Net_DNSSearchOrder = StringTrimRight($Net_DNSSearchOrder, 2)

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

    For $x = 0 To UBound($objItem.DNSDomainSuffixSearchOrder) - 1
    $Net_DNSDomainSuffixSearchOrder &= $objItem.DNSDomainSuffixSearchOrder($x) & ", "
    Next
    $Net_DNSDomainSuffixSearchOrder = StringTrimRight($Net_DNSDomainSuffixSearchOrder, 2)

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

    If $objItem.DHCPServer <> "255.255.255.255" Then $Net_DHCP_Server = $objItem.DHCPServer

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

    $Network &= $srv & ";" & $Net_Adapter & ";" & $Net_Description & ";" & $Net_IP & ";" & $Net_Subnet & ";" & $Net_GW & ";" & $Net_MAC & ";" & $Net_DNSSearchOrder & ";" & $Net_DNSDomainSuffixSearchOrder & ";" & $Net_Wins1 & ";" & $Net_Wins2 & ";" & $Net_DHCP_Server & @CRLF
    Next
    EndIf
    Return $Network
    EndFunc

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

    Func oMyError()
    Msgbox(0,"AutoItCOM Test","We intercepted a COM Error !" & @CRLF & @CRLF & _
    "err.description is: " & @TAB & $oMyError.Description & @CRLF & _
    "err.windescription:" & @TAB & $oMyError.WinDescription & @CRLF & _
    "err.number is: " & @TAB & Hex($oMyError.Number, 8) & @CRLF & _
    "err.lastdllerror is: " & @TAB & $oMyError.LastDllError & @CRLF & _
    "err.scriptline is: " & @TAB & $oMyError.Scriptline & @CRLF & _
    "err.source is: " & @TAB & $oMyError.Source & @CRLF & _
    "err.helpfile is: " & @TAB & $oMyError.Helpfile & @CRLF & _
    "err.helpcontext is: " & @TAB & $oMyError.HelpContext _
    )
    EndFunc

    [/autoit]

    Zurück gegeben wird, falls vorhanden:

    System Name;Adapter Name; Beschreibung;IP Adresse;Subnet Maske;Gateway;MAC Adresse;DNS Such Order;DNS Domänen Suffix Such Order;Wins1;Wins2;DHCP Server

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯