Esiste un modo per eseguire il ping ARP su Windows?


26

Su Linux e altri sistemi, esiste un'utilità chiamata arping che può essere utilizzata per inviare richieste ARP ("ping") e mostrare le risposte, proprio come l'utilità "ping" ma utilizzando ARP invece di ICMP.

C'è un modo per fare lo stesso su Windows? (Io uso Windows 7)

Risposte:


15

L'arping per Windows esiste davvero.

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

Correzione: questo è per Linux, MAC OSX, ecc ... ma può essere installato su Windows tramite Cygwin.


Per essere chiari, qualsiasi cosa sulla rete al giorno d'oggi deve rispondere all'ARP, quindi qualsiasi cosa "supporta" il ping ARP. Se hanno o meno una bella utility impacchettata per farlo è la domanda.
Qix,

14

Se si cancella la cache arp di Windows (arp -d) e quindi si tenta di eseguire il ping dell'indirizzo IP, verrà emessa una trasmissione arp.

Dai un'occhiata con Wireshark.


Questo comportamento è garantito?
Pacerier,

2
@Pacerier: Sì, poiché ICMP (ping) è costruito sopra il livello IP. Il livello IP richiede l'indirizzo hardware per un determinato indirizzo IP per sapere a chi inviare il suo pacchetto. Se la cache ARP è vuota, il livello IP non avrà altra scelta che emettere una richiesta ARP prima di poter inviare il pacchetto.
Cameron,

1
Questo comportamento NON è garantito. Accadrà solo se l'indirizzo IP è raggiungibile secondo le regole della sottorete; in caso contrario utilizzerà l'indirizzo IP del gateway predefinito per inviare una richiesta ARP.
Peter Crabtree,

6

Il comando ARP di WinXP è solo per la visualizzazione dei dati. Prova Nmap, è gratuito e abbastanza semplice per questo tipo di scansione. Nmap è disponibile su insecure.org.


4
Questo è probabilmente il più vicino che posso ottenere all'utility di arping (usando nmap -PR -sP <host>). Congratulazioni, hai vinto.
Etienne Dechamps,

1
@ e-t172 Con le versioni più recenti di nmap, il comando nmap -PR -sn <host>è preferito. -sPè deprecato. Inoltre, questo ha funzionato solo per me quando l'ho eseguito come root.
Nic,

5

Un modo integrato per farlo in Windows:

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, questo è hardcore - mi piace da morire! E funziona quasi qui. In realtà ho dovuto aggiungere uno spazio tra -ne 1così è diventato:... @ping -n 1 ...
saulius2

Questo ciclo dura per sempre. Penso che ciò che intendevi sia 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! "che viene eseguito due volte e quindi raccoglie indirizzi MAC duplicati.
prezzemolo72

3

Questo non è esattamente un "ping" ARP ma l'esecuzione di "arp inet_addr (indirizzo IP)" da un prompt dei comandi invierà una singola richiesta ARP all'host specificato in (indirizzo IP). È quindi possibile eseguire "arp -a" per vedere il risultato.


Semplicemente non funziona. Ricevo il mio prompt ma non è successo niente. Uno sniffer non ha mostrato alcuna richiesta ARP in uscita. Stesso risultato se l'indirizzo IP non è già nella tabella ARP.
Etienne Dechamps,

Bene, non si ottiene un risultato indietro. Il comando invia una singola richiesta ARP all'indirizzo IP, che è quindi possibile visualizzare il risultato emettendo il comando arp -a. Ho detto che non è esattamente un ping arp, ma invia una singola richiesta arp.
joeqwerty,

No non lo fa. Come ho detto, uno sniffer di rete non mostra alcuna richiesta ARP in uscita e nessuna voce viene aggiunta ad arp -a.
Etienne Dechamps,

È strano. Funziona esattamente come ho descritto su Windows 7 ma non su Windows XP. Scusate.
joeqwerty,

1
Non funziona neanche per me su Win7, scusa.
Cameron,


3

Prova "arp-ping.exe"

Ho pensato di aggiungere questo strumento che viene eseguito direttamente dal prompt dei comandi:

Opzioni della riga di comando di 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

Contro le opzioni della riga di comando "arping" di Linux

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

Come ottenere una tabella ARP con un'API dell'helper IP http://www.codeguru.com/cpp/in/internet/internetprotocolip/article.php/c6153

GetIpNetTable: recupera le informazioni sulla tabella di risoluzione degli indirizzi.

SetIpNetEntry: aggiunge la voce alla tabella ARP.

DeleteIpNetEntry: elimina la voce dalla tabella ARP.

CreateIpNetEntry: crea una voce nella tabella ARP.

FlushIpNetTable: elimina tutte le voci ARP per l'interfaccia specificata dalla tabella ARP

SendARP: invia una richiesta ARP per ottenere l'indirizzo fisico corrispondente all'indirizzo IP di destinazione specificato.


0

Sfortunatamente non esiste uno strumento integrato per farlo in Windows, ci sono alcuni strumenti di terze parti che lo faranno come Netscan , ma non è gratuito



0

Hardping è un programma decente che lo fa.

C'è la versione completa che costa denaro che è più di un programma di sweep ping, ma io uso solo la versione freeware. Quello gratuito fa solo 1 ip alla volta, ma è tutto ciò di cui avevo bisogno.

Lo useresti come c:> hardping 192.168.1.1 e risponderebbe con il mac o no.

Penso che l'hanno rimosso dal loro sito, ma puoi ancora trovarlo googling "hardping freeware"


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

ex: arp -a 192.168.0.1


Questo comando cercherà solo nella cache arp corrente, non emetterà un nuovo arp "Chi ha 192.168.0.1?" richiesta
Chriz
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.