MAC Adresse

  • hallöchen,

    hat autoit einen befehl oder andere möglichkeiten die MAC adresse
    zu lesen ?
    ( gibs da vll. ein eintrag in der registry?)

    danke schonmal

    kackerli

    • Offizieller Beitrag

    Hi,
    ich habe noch 'ne Variante für dich (übrigens, in der Registry gibt es keinen Vermerk der MAC-Adressen)

    Spoiler anzeigen
    [autoit]

    #include <file.au3>
    #include <string.au3>
    #include <array.au3>

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

    Dim $RegKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards"
    Dim $MAC, $Device, $DevStr, $arMAC, $arAllAdapter[1], $arAllMAC[1]
    $arAllAdapter[0] = 0
    $arAllMAC[0] = 0

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

    For $i = 1 To 100
    $var = RegEnumKey($RegKey, $i)
    If @error <> 0 Then ExitLoop
    _ArrayAdd($arAllAdapter, RegRead($RegKey & "\" & $var, "ServiceName") & "|" & RegRead($RegKey & "\" & $var, "Description"))
    $arAllAdapter[0] += 1
    Next
    If FileExists("MAC.TXT") Then FileDelete("MAC.TXT")
    RunWait(@ComSpec & ' /c ' & 'getmac > MAC.TXT', '', @SW_HIDE)
    _FileReadToArray("MAC.TXT", $arMAC)
    For $i = 1 To $arMAC[0]
    If StringInStr($arMAC[$i], "Tcpip") Then
    $MAC = StringLeft($arMAC[$i], 17)
    $DevStr = _StringBetween($arMAC[$i], "{", "}")
    $Device = "{" & $DevStr[0] & "}"
    For $k = 1 To $arAllAdapter[0]
    $var = StringSplit($arAllAdapter[$k], "|")
    If $Device = $var[1] Then
    _ArrayAdd($arAllMAC, $MAC & " " & $var[2])
    $arAllMAC[0] += 1
    EndIf
    Next
    EndIf
    Next

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

    _ArrayDisplay($arAllMAC, "Alle aktiven MAC-Adapter")

    [/autoit]

    EDIT:

    Du kannst auch die MAC-Adresse eines entfernten Rechners abfragen. Dazu mußt du ihn erst anpingen. Dabei wird auch die MAC-Adresse im Cache gespeichert. Mit "arp -a" werden diese Daten aus dem Cache gelesen. Sieht dann etwa so aus:

    Zitat

    C:\WINDOWS>arp -a
    Schnittstelle: 136.1.32.34 on Interface 2 Internet-Adresse Physische Adresse
    136.1.32.37 00-6b-3f-6b-3b-31 136.1.32.42 00-43-68-4b-f6-a1

    Wenn du allerdings hinter einem Gateway bist, kannst du nur die Daten innerhalb des Subnetzes abfragen.

  • ty für die hilfe hab mir kleines progrämchen zur änderung der macs geschrieben :stolz_bin: