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)

Etienne Dechamps
fonte

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.

Ryaner
fonte
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.

Stef Heylen
fonte
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.


fonte
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! "
faíscas
fonte
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.

joeqwerty
fonte
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
Valamas
fonte
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.

calloatti
fonte
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

Sam Cogan
fonte
0

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

GregD
fonte
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"


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

ex: arp -a 192.168.0.1

supersimples
fonte
Este comando pesquisará apenas o cache arp atual, não emitirá um novo arp "Quem possui 192.168.0.1?" request
Chriz