¿Hay alguna forma de hacer ping ARP en Windows?


26

En Linux y otros sistemas, hay una utilidad llamada arping que se puede usar para enviar solicitudes ARP ("pings") y mostrar las respuestas, al igual que la utilidad "ping" pero usando ARP en lugar de ICMP.

¿Hay alguna manera de hacer lo mismo en Windows? (Yo uso Windows 7)

Respuestas:


15

Arping para windows realmente existe.

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

Corrección: esto es para Linux, MAC OSX, etc. pero se puede instalar en Windows a través de cygwin.


Para ser claros, cualquier cosa en la red hoy en día necesita responder a ARP, por lo tanto, casi cualquier cosa "admite" el ping ARP. La cuestión es si tienen o no una buena utilidad empaquetada con un arco para hacerlo.
Qix

14

Si borra el caché de arp de Windows (arp -d) y luego intenta hacer ping a la dirección IP, emitirá una transmisión de arp.

Compruébalo con Wireshark.


¿Está garantizado este comportamiento?
Pacerier

2
@Pacerier: Sí, ya que ICMP (ping) está construido sobre la capa IP. La capa IP necesita la dirección de hardware para una dirección IP determinada para saber a quién enviar su paquete. Si el caché ARP está vacío, la capa IP no tendrá más remedio que emitir una solicitud ARP antes de que pueda enviar el paquete.
Cameron

1
Este comportamiento NO está garantizado. Solo sucederá si se puede acceder a la dirección IP de acuerdo con las reglas de subred; de lo contrario, usará la dirección IP de la puerta de enlace predeterminada para emitir una solicitud ARP.
Peter Crabtree

6

El comando ARP de WinXP es solo para mostrar datos. Pruebe Nmap, es gratis y bastante fácil para este tipo de escaneo. Nmap está disponible en insecure.org.


44
Eso es probablemente lo más cerca que puedo llegar a la utilidad de arping (usando nmap -PR -sP <host>). Felicitaciones has ganado.
Etienne Dechamps

1
@ e-t172 Con versiones más nuevas de nmap, nmap -PR -sn <host>se prefiere el comando . -sPes obsoleto. Además, esto solo funcionó para mí cuando lo ejecuté como root.
Nic

5

Una forma integrada de hacer esto en 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, esto es hardcore, ¡me encanta! Y casi está funcionando aquí. En realidad, tuve que agregar un espacio intermedio -ny 1se convirtió en:... @ping -n 1 ...
saulius2

Este ciclo se ejecuta para siempre. Creo que lo que pretendía es 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! "que se ejecuta dos veces y, por lo tanto, recoge direcciones MAC duplicadas.
perejil72

3

Esto no es exactamente un "ping" de ARP, pero ejecutar "arp inet_addr (dirección IP)" desde un símbolo del sistema enviará una única solicitud ARP al host especificado en (dirección IP). Luego puede ejecutar "arp -a" para ver el resultado.


Simplemente no funciona. Recibo mi mensaje de regreso pero no pasó nada. Un sniffer no mostró ninguna solicitud de ARP. Mismo resultado si la dirección IP aún no está en la tabla ARP.
Etienne Dechamps

Bien, no obtienes un resultado. El comando envía una única solicitud ARP a la dirección IP, que luego puede ver el resultado emitiendo el comando arp -a. Dije que no es exactamente un arp ping, pero envía una sola solicitud de arp.
joeqwerty

No, no lo hace. Como dije, un sniffer de red no muestra ninguna solicitud ARP que se está enviando, y no se agrega ninguna entrada a arp -a.
Etienne Dechamps

Eso es extraño. Funciona exactamente como lo describí en Windows 7 pero no en Windows XP. Lo siento.
joeqwerty

1
Tampoco funciona para mí en Win7, lo siento.
Cameron


3

Prueba con "arp-ping.exe"

Pensé que agregaría esta herramienta que se ejecuta directamente desde el símbolo del sistema:

Opciones de línea de comando 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

Frente a las opciones de línea de comando "arping" de 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

Cómo obtener una tabla ARP con una API auxiliar de IP http://www.codeguru.com/cpp/in/internet/internetprotocolip/article.php/c6153

GetIpNetTable: recupera la información de la tabla de resolución de direcciones.

SetIpNetEntry: agrega una entrada a la tabla ARP.

DeleteIpNetEntry: elimina la entrada de la tabla ARP.

CreateIpNetEntry: crea una entrada en la tabla ARP.

FlushIpNetTable: elimina todas las entradas ARP para la interfaz especificada de la tabla ARP

SendARP: envía una solicitud ARP para obtener la dirección física que corresponde a la dirección IP de destino especificada.


0

Desafortunadamente, no hay una herramienta integrada para hacer esto en Windows, hay algunas herramientas de terceros que lo harán, como Netscan , pero no es gratis



0

Hardping es un programa decente que hace esto.

Existe la versión completa que cuesta dinero que es más un programa de barrido de ping, pero solo uso la versión gratuita. El gratuito solo hace 1 ip a la vez, pero eso es todo lo que necesitaba.

Lo usarías como c:> hardping 192.168.1.1 y respondería con el mac o no.

Creo que lo sacaron de su sitio, pero aún puede encontrarlo buscando en Google "freeware hardping"


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

ex: arp -a 192.168.0.1


Este comando solo buscará en el caché de arp actual, no emitirá un nuevo arp "¿Quién tiene 192.168.0.1?" solicitud
Chriz
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.