2012-03-27 7 views
1

Ich bin ein Start C/C++ - Programmierer.Ping-Netzwerk und erhalten Mac Adressen

Was ich will, ist die folgende Sache:
Starten Sie das Programm, beginnt das gesamte Netzwerk ping und speichert die Adressen, die aktiv waren. Wenn Sie fertig sind, holen Sie sich die MAC-Adresse von den zuvor gespeicherten IP-Adressen und speichern Sie sie.

Wenn Sie fertig sind, durchlaufen Sie die MAC-Adressenliste, und finden Sie 1 Mac-Adresse, wenn gefunden, rufen Sie herum, dass er es gefunden hat.

So etwas möchte ich machen.

Ich habe viel gegoogelt, aber nichts half mir wirklich.

Also meine Frage, was brauche ich (welche Bibliotheken, welche Anweisungen), damit ich das programmieren kann.

Beachten Sie, dass mein Betriebssystem im Moment Windows ist, aber ich möchte es in Zukunft auch mit Linux kompatibel machen.

+0

meine Tipp wäre, [Boost Asio] zu überprüfen (http://www.boost.org/libs/asio) – Default

+0

Ich werde überprüfen, dass später – Mathlight

Antwort

0

Verwenden Sie das arp Werkzeug auf der Kommandozeile zB arp -a 192.168.0.100

Von C++ auf Ihrem O abhängig ist, unter Windows ist es SendArp()

für alle Maschinen auf dem LAN verwenden nmap zu scannen - siehe How do I get a list of the active IP-addresses, MAC-addresses and NetBIOS names on the LAN?

+0

es ein Anfang ist, aber zuerst muss ich das gesamte Netzwerk pingen und die actifs finden (und schnell, nicht 8 Sekunden für jeden Host warten, dass er kann – Mathlight

+0

@TWCrap nicht finden: Sie können nicht zuverlässig feststellen, welche Geräte sich in einem Netzwerk befinden, wenn Sie nicht auf ihre Antworten warten möchten. – dreamlax

+0

@TWCrap, Sie können das Timeout für Ping/Arp ändern, wenn Sie wissen, wie schnell die Maschinen reagieren werden. Eine bessere Möglichkeit, alle Maschinen zu scannen, ist http://stackoverflow.com/questions/90755/how-do-i-get-a-list-of-the-active-ip-addresses-mac-addresses-and- netbios-Namen, aber Sie müssen immer noch auf sie warten –

Verwandte Themen