Netzwerkkarte per Netzwerk-IP auslesen

  • Wenn ich richtig sehe, bzw. getestet habe, dann kann ich abe nicht mit dieser Funktion auch Netzwerkkarten von meinem PC aus von anderen PCs auslesen oder?
    Also indem ich die IP angebe.

    Er schreibt als Fehler 1 rein und ich nutze Vista^^

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    $iTimer = TimerInit()
    $aAdapter = _Win32NetworkAdapter()
    ConsoleWrite('Fehler: ' & @error & @CR & 'Zeit: ' & Int(TimerDiff($iTimer)) & ' ms' & @CR)
    _ArrayDisplay($aAdapter)

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

    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

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

    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

    [/autoit]
  • hallo pinguin94,
    ich bin auf der suche nach einer funktion, die mir alle laufenden rechner im netzwerk ausspuckt. würdest du deine funktion hier veröffentlichen oder als pm an mich senden? das wär super!;)

  • @Pinguin94 zum hundertstenmal, was verstehst du unter Netzwerkkarte auslesen, den Typ, die Mac, die Technischen Daten??

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Hi,

    bei mir funktionieren folgende Versionen, getestet XP SP3 Prof. Ich habe einen administrativen Account für alle Clients genutzt:
    $aAdapter = _Win32NetworkAdapter(<IP Adresse>)
    $aAdapter = _Win32NetworkAdapter(<Rechnername>)

    Falls Du einen Fehler bekommen solltest, liegt es sehr wahrscheinlich an eingeschalteter Firewall auf dem abzufragendem Client oder fehlende Berechtigung auf dem Zielclient.

    ;-))
    Stefan

  • Hi,

    entweder das oder FW.

    ;-))
    Stefan

    P.S: Die Frage musst Du schon selbst beantworten, da ich die Umgebung nicht kenne.