Gibt es eine Möglichkeit, unter Windows ein ARP-Ping durchzuführen?


26

Unter Linux und anderen Systemen gibt es ein Hilfsprogramm namens Arping, mit dem ARP-Anforderungen ("Pings") gesendet und die Antworten angezeigt werden können, ähnlich wie mit dem Hilfsprogramm "Ping", wobei jedoch ARP anstelle von ICMP verwendet wird.

Gibt es eine Möglichkeit, dasselbe unter Windows zu tun? (Ich benutze Windows 7)

Antworten:


15

Arping für Windows ist tatsächlich vorhanden.

http://freshmeat.net/projects/arping/

Korrektur: Dies ist für Linux, MAC OSX usw., kann aber unter Windows über Cygwin installiert werden.


Um klar zu sein, muss heutzutage alles im Netzwerk auf ARP reagieren, daher "unterstützt" fast alles ARP-Ping. Ob sie dafür ein nützliches Hilfsprogramm haben oder nicht, ist die Frage.
Qix

14

Wenn Sie den Arp-Cache von Window löschen (arp -d) und dann versuchen, die IP-Adresse zu pingen, wird ein Arp-Broadcast ausgegeben.

Probieren Sie es mit Wireshark aus.


Ist dieses Verhalten garantiert?
Pacerier

2
@ Pacerier: Ja, da ICMP (Ping) auf der IP-Schicht aufgebaut ist. Die IP-Schicht benötigt die Hardwareadresse für eine bestimmte IP-Adresse, um zu wissen, an wen das Paket gesendet werden soll. Wenn der ARP-Cache leer ist, muss die IP-Schicht eine ARP-Anforderung absetzen, bevor sie das Paket senden kann.
Cameron

1
Dieses Verhalten ist NICHT garantiert. Dies geschieht nur, wenn die IP-Adresse gemäß den Subnetzregeln erreichbar ist. Andernfalls wird die IP-Adresse des Standardgateways verwendet, um eine ARP-Anforderung auszugeben.
Peter Crabtree

6

Der ARP-Befehl von WinXP dient nur zur Anzeige von Daten. Probieren Sie Nmap aus, es ist kostenlos und für diese Art von Scan ziemlich einfach. Nmap ist unter insecure.org verfügbar.


4
Das ist wahrscheinlich der nächste Punkt, an dem ich das Dienstprogramm arping erreichen kann (mit nmap -PR -sP <host>). Glückwunsch du hast gewonnen.
Etienne Dechamps

1
@ e-t172 Bei neueren Versionen von nmap wird der Befehl nmap -PR -sn <host>bevorzugt. -sPist veraltet. Dies hat auch nur bei mir funktioniert, als ich es als root ausgeführt habe.
Nic

5

Ein eingebauter Weg, um dies in Windows zu tun:

cmd /V /C "set "IP=10.0.2.2" & FOR /L %i in (1,0,2) do @ping -n1 -w 1000 "!IP!" >NUL & arp -a | findstr /c:"!IP! "

Wow, das ist Hardcore - ich liebe ich! Und hier funktioniert es fast. Eigentlich musste ich ein Leerzeichen dazwischen setzen -nund 1so wurde es:... @ping -n 1 ...
saulius2

Diese Schleife läuft für immer. Ich denke, was Sie beabsichtigt haben, ist, cmd /V /C "set "IP=10.0.2.2" & FOR /L %i in (1,1,2) do @ping -n 1 -w 1000 "!IP!" >NUL & arp -a | findstr /c:"!IP! "dass es zweimal ausgeführt wird und so doppelte MAC-Adressen aufnimmt.
Petersilie72

3

Dies ist nicht genau ein ARP "Ping", aber wenn Sie "arp inet_addr (ip address)" an einer Eingabeaufforderung ausführen, wird eine einzelne ARP-Anforderung an den in (ip address) angegebenen Host gesendet. Sie können dann "arp -a" ausführen, um das Ergebnis zu sehen.


Funktioniert einfach nicht. Ich bekomme meine Nachricht zurück, aber es ist nichts passiert. Ein Sniffer zeigte keine ARP-Anfragen an. Gleiches Ergebnis, wenn die IP-Adresse noch nicht in der ARP-Tabelle enthalten ist.
Etienne Dechamps

Richtig, Sie bekommen kein Ergebnis zurück. Der Befehl sendet eine einzelne ARP-Anforderung an die IP-Adresse. Sie können das Ergebnis anzeigen, indem Sie den Befehl arp -a absetzen. Ich sagte, es ist nicht gerade ein Arp-Ping, aber es sendet eine einzelne Arp-Anfrage.
Joeqwerty

Nein, tut es nicht. Wie gesagt, ein Netzwerk-Sniffer zeigt keine ausgehende ARP-Anfrage an, und arp -a wird kein Eintrag hinzugefügt.
Etienne Dechamps

Das ist merkwürdig. Es funktioniert genau so, wie ich es unter Windows 7 beschrieben habe, aber nicht unter Windows XP. Es tut uns leid.
Joeqwerty

1
Funktioniert bei mir auch nicht unter Win7, sorry.
Cameron


3

Versuchen Sie "arp-ping.exe"

Ich dachte, ich würde dieses Tool hinzufügen, das direkt von der Eingabeaufforderung ausgeführt wird:

Befehlszeilenoptionen für arp-ping.exe

Usage: arp-ping.exe [options] target
        -s ip : specify source ip
        -n X  : ping X times
        -t    : ping until stopped with CTRL-C
        -x    : exit immediately after successful ping
        -i X  : ping every X seconds
        -d    : do an 'arp -d *' between pings (requires Administrator)
                (-d prevents cached ARP responses on Windows XP.)
        -c    : include date and time on each line
        -m X  : ignore failures that take less than X milliseconds
        -.      : print a dot (.) for every ignored failure
        -l    : print debug log
        -v    : print version and exit

Gegenüber den Linux "Arping" Befehlszeilenoptionen

Usage: arping [-fqbDUAV] [-c count] [-w timeout] [-I device] [-s source] destination
-f : quit on first reply
-q : be quiet
-b : keep broadcasting, don't go unicast
-D : duplicate address detection mode
-U : Unsolicited ARP mode, update your neighbours
-A : ARP answer mode, update your neighbours
-V : print version and exit
-c count : how many packets to send
-w timeout : how long to wait for a reply
-I device : which ethernet device to use (eth0)
-s source : source ip address
destination : ask for what ip address

1

So rufen Sie eine ARP-Tabelle mit einer IP Helper-API ab: http://www.codeguru.com/cpp/in/internet/internetprotocolip/article.php/c6153

GetIpNetTable: Ruft Informationen zur Adressauflösungstabelle ab.

SetIpNetEntry: Fügt der ARP-Tabelle einen Eintrag hinzu.

DeleteIpNetEntry: Löscht einen Eintrag aus der ARP-Tabelle.

CreateIpNetEntry: Erstellt einen Eintrag in der ARP-Tabelle.

FlushIpNetTable: Löscht alle ARP-Einträge für die angegebene Schnittstelle aus der ARP-Tabelle

SendARP: Sendet eine ARP-Anfrage, um die physikalische Adresse zu erhalten, die der angegebenen Ziel-IP-Adresse entspricht.




0

Hardping ist ein anständiges Programm, das dies tut.

Es gibt die Vollversion, die mehr Geld kostet als ein Ping-Sweep-Programm, aber ich benutze nur die Freeware-Version. Das kostenlose tut nur 1 ip auf einmal, aber das ist alles, wofür ich es brauchte.

Sie würden es wie c:> hardping 192.168.1.1 verwenden und es würde mit dem Mac antworten oder nicht.

Ich denke, sie haben es von ihrer Website entfernt, aber Sie können es immer noch finden, indem Sie "Hardping Freeware" googeln.


-1
arp -a your.ip.here.jo

Ex: arp -a 192.168.0.1


Dieser Befehl sucht nur im aktuellen Arp-Cache und gibt keinen neuen Arp aus. "Who has 192.168.0.1?" Anfrage
Chriz
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.