Existe alguma maneira de executar ping ARP no Windows?


26

No Linux e em outros sistemas, existe um utilitário chamado arping que pode ser usado para enviar solicitações de ARP ("pings") e mostrar as respostas, bem como o utilitário "ping", mas usando ARP em vez de ICMP.

Existe alguma maneira de fazer o mesmo no Windows? (Eu uso o Windows 7)

Respostas:


15

Arping para Windows realmente existe.

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

Correção: é para Linux, MAC OSX, etc ... mas pode ser instalado no Windows através do cygwin.


Para ser claro, qualquer coisa na rede hoje em dia precisa responder ao ARP; portanto, praticamente qualquer coisa "suporta" o ping do ARP. Se eles têm ou não um bom utilitário embalado com um arco para fazer isso é a questão.
Junix

14

Se você limpar o cache arp do Windows (arp -d) e tentar executar ping no endereço IP, ele emitirá uma transmissão arp.

Confira com o Wireshark.


Esse comportamento é garantido?
Pacerier

2
@Pacerier: Sim, já que o ICMP (ping) é construído sobre a camada IP. A camada IP precisa do endereço de hardware para um determinado endereço IP para saber para quem enviar seu pacote. Se o cache do ARP estiver vazio, a camada IP não terá escolha a não ser emitir uma solicitação de ARP antes de enviar o pacote.
Cameron #

1
Esse comportamento não é garantido. Isso só acontecerá se o endereço IP estiver acessível de acordo com as regras de sub-rede; caso contrário, ele usará o endereço IP do gateway padrão para emitir uma solicitação ARP.
Peter Crabtree

6

O comando ARP do WinXP é apenas para exibir dados. Experimente o Nmap, é grátis e bastante fácil para esse tipo de verificação. O Nmap está disponível em insecure.org.


4
Provavelmente é o mais próximo que posso chegar do utilitário arping (usando nmap -PR -sP <host>). Parabéns, você ganhou.
Etienne Dechamps

1
@ e-t172 Nas versões mais recentes do nmap, o comando nmap -PR -sn <host>é preferido. -sPestá obsoleto. Além disso, isso só funcionou para mim quando eu o executei como root.
Nic

5

Uma maneira integrada de fazer isso no 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! "

Uau, isso é hardcore - eu amo eu! E está quase funcionando aqui. Na verdade, eu tive que adicionar um espaço entre -ne 1por isso tornou-se:... @ping -n 1 ...
saulius2

Esse loop é executado para sempre. Eu acho que o que você pretendia é 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 roda duas vezes e pega endereços MAC duplicados.
precisa saber é o seguinte

3

Este não é exatamente um "ping" do ARP, mas a execução de "arp inet_addr (endereço IP)" em um prompt de comando enviará uma única solicitação ARP para o host especificado em (endereço IP). Você pode executar "arp -a" para ver o resultado.


Simplesmente não funciona. Recebo meu aviso de volta, mas nada aconteceu. Um farejador não mostrou nenhum pedido de ARP saindo. Mesmo resultado, se o endereço IP ainda não estiver na tabela ARP.
Etienne Dechamps

Certo, você não obtém um resultado de volta. O comando envia uma única solicitação ARP para o endereço IP, para que você possa ver o resultado emitindo o comando arp -a. Eu disse que não é exatamente um arp ping, mas envia uma única solicitação de arp.
Joeqwerty 30/09/09

Não, não faz. Como eu disse, um sniffer de rede não mostra nenhuma solicitação ARP saindo e nenhuma entrada é adicionada ao arp -a.
Etienne Dechamps

Isso é estranho. Funciona exatamente como eu descrevi no Windows 7, mas não no Windows XP. Desculpe.
joeqwerty

1
Também não funciona para mim no Win7, desculpe.
Cameron #


3

Experimente "arp-ping.exe"

Pensei em adicionar esta ferramenta que é executada diretamente no prompt de comando:

Opções de linha de comando do 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

Versus as opções de linha de comando "arping" do 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

Como obter uma tabela ARP com uma API auxiliar de IP http://www.codeguru.com/cpp/in/internet/internetprotocolip/article.php/c6153

GetIpNetTable: Recupera informações da tabela de resolução de endereços.

SetIpNetEntry: adiciona entrada à tabela ARP.

DeleteIpNetEntry: exclui a entrada da tabela ARP.

CreateIpNetEntry: cria uma entrada na tabela ARP.

FlushIpNetTable: exclui todas as entradas ARP da interface especificada da tabela ARP

SendARP: envia uma solicitação ARP para obter o endereço físico que corresponde ao endereço IP de destino especificado.


0

Infelizmente, não há uma ferramenta integrada para fazer isso no Windows, existem algumas ferramentas de terceiros que farão isso, como o Netscan , mas não é gratuito


0

Eu acredito que você pode fazer arp-ping com o CAIN , que é gratuito.


0

Hardping é um programa decente que faz isso.

Existe a versão completa que custa dinheiro, que é mais um programa de varredura de ping, mas eu apenas uso a versão freeware. O grátis faz apenas 1 ip de cada vez, mas é tudo o que eu precisava.

Você o usaria como c:> hardping 192.168.1.1 e ele responderia com o mac ou não.

Eu acho que eles tiraram do site, mas você ainda pode encontrá-lo pesquisando no Google "hardping freeware"


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

ex: arp -a 192.168.0.1


Este comando pesquisará apenas o cache arp atual, não emitirá um novo arp "Quem possui 192.168.0.1?" request
Chriz
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.