Olá caros alunos e leitores da DlteC, hoje vou postar um artigo com uma técnica bem simples para descobrir o MAC se temos apenas o endereço IP de um host local ou remoto, o que tem muito a ver com o protocolo ARP – Address Resolution Protocol – e o funcionamento básico de uma rede.
Mas como descobrir o MAC de um host se eu tenho apenas o IP?
Existe mais de uma maneira de descobrir o MAC e depende do dispositivo que você está conectado para realizar o teste, por isso vamos utilizar duas situações, sendo que a primeira você está em um computador ou servidor baseado no sistema operacional Windows e não vai instalar nenhum programa extra.
O teste mais fácil é verificar se o IP está na mesma rede ou subrede que seu computador.
Se estiver, para descobrir o MAC basta dar um ping e depois utilizar ainda no prompt de comando o “arp -a”.
Quando damos um ping para o host de destino o seu computador deve realizar uma consulta ARP para descobrir o MAC de destino dele e com o “arp -a” vamos visualizar o que foi armazenado no cachê arp.
Veja exemplo abaixo onde o computador tem o IP 192.168.1.63 e queremos descobrir o MAC do host de destino com IP 192.168.1.254.
C:\>ipconfig
Configuração de IP do Windows
Adaptador Ethernet Ponte de rede:
Sufixo DNS específico de conexão. . . . . . :
Endereço IPv6 de link local . . . . . . . . : fe80::ccff:5f8f:47f5:950d%32
Endereço IPv4. . . . . . . . . . . . . . . : 192.168.1.63
Máscara de Sub-rede . . . . . . . . . . . . : 255.255.255.0
Gateway Padrão. . . . . . . . . . . . . . . : 192.168.1.1
C:\>ping 192.168.1.254
Disparando 192.168.1.254 com 32 bytes de dados:
Resposta de 192.168.1.254: bytes=32 tempo=11ms TTL=64
Resposta de 192.168.1.254: bytes=32 tempo=6ms TTL=64
Resposta de 192.168.1.254: bytes=32 tempo=5ms TTL=64
Resposta de 192.168.1.254: bytes=32 tempo=5ms TTL=64
Estatísticas do Ping para 192.168.1.254:
Pacotes: Enviados = 4, Recebidos = 4, Perdidos = 0 (0% de
perda),
Aproximar um número redondo de vezes em milissegundos:
Mínimo = 5ms, Máximo = 11ms, Média = 6ms
C:\>arp -a
Interface: 192.168.1.63 --- 0x20
Endereço IP Endereço físico Tipo
192.168.1.1 28-93-fe-6c-e1-63 dinâmico
192.168.1.254 00-12-7b-50-01-f6 dinâmico
192.168.1.255 ff-ff-ff-ff-ff-ff estático
224.0.0.22 01-00-5e-00-00-16 estático
224.0.0.252 01-00-5e-00-00-fc estático
224.0.1.60 01-00-5e-00-01-3c estático
239.255.255.250 01-00-5e-7f-ff-fa estático
255.255.255.255 ff-ff-ff-ff-ff-ff estático
C:\>
Lembre-se que o ARP não armazena informações de hosts em redes ou subredes diferentes das que estão configuradas nas interfaces de rede do computador local. Portanto, o que vimos acima não serve para descobrir o MAC de redes remotas.
Se o host remoto tiver o protocolo netbios ativado você pode tentar entrar no switch ou roteador que está na mesma VLAN dele e fazer o mesmo passo a passo acima, com um ping e depois visualizando a tabela arp do roteador ou switch para tentar descobrir o MAC.
Se for um dispositivos com Cisco IOS utilize o comando “show arp” para descobrir o MAC.
Por exemplo, ainda estando no computador 192.168.1.63 queremos descobrir o MAC do servidor DNS que está na rede 192.168.10.0 e tem IP 192.168.10.1.
Para resolver demos um telnet para o roteador Cisco 192.168.1.1, o qual tem uma interface na rede 192.168.10.0 para finalizar o teste, veja a saída abaixo.
DlteC-FW#ping 192.168.10.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/4 ms
DlteC-FW#show arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 10.0.1.1 - 2893.fe6c.e163 ARPA FastEthernet0/1.20
Internet 10.0.1.2 46 0026.5a9e.9f25 ARPA FastEthernet0/1.20
Internet 192.168.1.1 - 2893.fe6c.e163 ARPA FastEthernet0/1.10
Internet 192.168.1.63 0 c018.85e5.eedb ARPA FastEthernet0/1.10
Internet 192.168.1.201 2 000c.295e.bb64 ARPA FastEthernet0/1.10
Internet 192.168.1.254 1 0012.7b50.01f6 ARPA FastEthernet0/1.10
Internet 192.168.2.1 - 2893.fe6c.e163 ARPA FastEthernet0/1.30
Internet 192.168.2.22 36 0023.339d.0792 ARPA FastEthernet0/1.30
Internet 192.168.2.25 10 001d.7060.d31b ARPA FastEthernet0/1.30
Internet 192.168.10.1 0 0022.3f3d.d916 ARPA FastEthernet0/0
Internet 192.168.10.2 - 2893.fe6c.e162 ARPA FastEthernet0/0
DlteC-FW#show arp | include 192.168.10.2
Internet 192.168.10.2 - 2893.fe6c.e162 ARPA FastEthernet0/0
DlteC-FW#
Por hoje ficamos com esses conhecimentos, espero que vocês tenham gostado e caso tenham alguma sugestão de post é só colocar no comentário que os mais pedidos serão analisados com muito carinho.
Até uma próxima!!!
Prof Marcelo Nascimento
Acesse o curso de “Redes Completo Online” em nossa área Premium.
Aprenda o que todo profissional da área de Redes deve saber sobre TCP/IP, MAC, ARP e demais assuntos básicos, mas essenciais no dia a dia da administração de redes.
Clique aqui para ativar o curso e inciar seus estudos em nossa área de membros premium!
Não é membro premium? Clique aqui e saiba mais sobre a DlteC Premium.
4 Responses
Quando eu limpo todas entradas arp com o comando “arp -d” no Windows 10, depois de alguns minutos todas as entradas ARP que eu tinha excluído manualmente aparecem lá novamente sem eu ter iniciado um Ping para a partir do IP especifico descobrir o MAC em uma solicitação arp request. Excluí a entrada que tinha o IP 192.168.1.100 e depois vou verificar no wireshark o mesmo mostra que meu computador enviou um arp request perguntando do IP 192.168.1.100 e depois apareceu a entrada do IP 192.168.1.100 que eu tinha excluído. O estranho é como o computador sabe do endereço IP para fazer uma solicitação arp request sendo eu eu tinha excluído a entrada. Não entendi com o meu PC soube o endereço IP sem eu ter iniciado nenhum tipo de serviço.
Oi Rafael, o Windows tem vários serviços em background que estão em constante contato em uma LAN, por isso os testes ficam estranhos quando fazemos em PCs com Windows.
Gostaria de saber se tem como eu detectar um endereço Mac de uma maquina, que fez acesso a minha página via internet é claro.
Obrigado.
Oi Paulo, via Internet você vai identificar o IP, pois o MAC real da máquina morre na rede local dela, pois informações de L2 não são passadas em sub-redes diferentes e variam a cada salto que o pacote IP dá.