Box finden via Broadcast

    • Offizieller Beitrag

    Hallo,

    Ich arbeite gerade an einem Projekt in dem ich mehre Boxen in einem bestimmten Netzwerk habe. Die Nutzer haben wenig Ahnung von diesen Boxen, sie wissen, wie sie ein LAN Kabel anschließen und das wars auch schon. Die Boxen wählen sich automatisch via DHCP ins Netzwerk ein. Nun muss ich die IP Adresse und die MAC-Adresse der Boxen herausfinden.

    Dafür haben die Hersteller der Box ein Programm mitgeliefert, welches die Boxen sucht. Nun muss ich dies in AutoIt implementieren. Leider ist der Firmensitz in China und es gibt weder Support noch Dokumentationen.

    Also habe ich das Programm gestartet und Wireshark mitlaufen lassen. Mit dem Ergebnis kann ich leider nicht viel Anfang, weiß jemand was dies Bedeutet? Protokoll 0x232a? Statt IP-Adressen MAC-Adressen?

    Hier mal die Screenshots von Wireshark, das erste ist das, was das mitgelieferte Programm sendeten (an Broadcast, also ff:ff:ff:ff:ff:ff), der zweite gibt das wieder, was Empfangen wird (was also die Box im Netzwerk gesendet hat).

    Send:
    [Blockierte Grafik: http://a28t.img-up.net/broadcast_adb7.jpg]
    Recv:
    [Blockierte Grafik: http://e61t.img-up.net/recv0704.jpg]
    Und hier noch mal das IPDetect Tool und was es mir ausgibt. Die MAC-Adresse sieht man beim Recv bei der Quelle (Source).
    [Blockierte Grafik: http://d16t.img-up.net/ipdetectafcf.jpg]

    Jemand eine Idee wie ich das in AutoIt umsetzen kann?

    Vielen Dank,
    Gruß
    Spider

  • Kannst mal die beiden Pakete speichern und hochladen? Dann kann ich besser gucken.

    Edit: Hab doch schonwas hinbekommen.
    So sendest du den Broadcast.

    Spoiler anzeigen
    [autoit]

    #include <Winpcap.au3>

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

    Global $aPcapDevices, $hPcap, $sMyMAC, $sPacket
    Global $sBroadcastMAC = "FFFFFFFFFFFF"
    Global $sProtocol = "232a"
    Global $sData = "90232a01000000000000000000000000000000000000000000000000cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"

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

    _PcapSetup()

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

    $aPcapDevices = _PcapGetDeviceList()
    $hPcap = _PcapStartCapture($aPcapDevices[0][0])
    $sMyMAC = StringReplace($aPcapDevices[0][6], ":", "")

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

    $sPacket = "0x" & $sBroadcastMAC & $sMyMAC & $sProtocol & $sData
    _PcapSendPacket($hPcap, $sPacket)

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

    _PcapFree()

    [/autoit]


    Und die WinPcap.au3 findest du hier.

    Achja musst natürlich schauen welches Device du nimmst, weiß ja nicht welches du nutzt. Also einfach mal vorher gucken mit _ArrayDisplay.

    2 Mal editiert, zuletzt von m-obi (20. Juni 2012 um 09:27)