Pegar MAC através do IP na rede interna

Publicado por Marcelo Theodoro (última atualização em 28/06/2013)

[ Hits: 10.284 ]

Homepage: None

Download iptomac.sh

Download ip2mac.sh (versão 2)




Esse pequeno script pega o MAC de um computador através de seu IP. Lógico que apenas na rede interna.

NOTA: É necessário ter o nmap instalado para que ele funcione.

Para usar, digite:

./iptomac.sh 192.168.1.1

O script não tem nenhum tipo de validação, acabei de fazer e não tive tempo de trabalhar muito ainda.

Provavelmente vou aprimorar mais no futuro.

  



Versões atualizadas deste script

Versão 2 - Enviado por Marcelo Theodoro em 28/06/2013

Changelog: Versão com melhor desempenho e com alguma validação de erro.
Testado no Debian 6 e no CentOS 6.
Instruções no próprio script.

Download ip2mac.sh


Esconder código-fonte

#!/bin/bash
ping -c 1 $1 > /dev/null || nmap -sS $1 > /dev/null
arp -a | grep -i $1 | awk -F" " '{print $2, $4}' | sed 's/(//g' | sed 's/)/ ->/g'
exit 0

Scripts recomendados

Script para enviar put para uma API usando curl e dados no formato json

Firewall para web server

Menu que chama outros scripts

Script para pegar ip WAN para firewall com uma ou mais links de internet

Script Basico para Tunnel Broker


  

Comentários
[1] Comentário enviado por removido em 18/02/2013 - 10:53h

Tem como buscar o MAC da rede toda veja o script abaixo:
#!/bin/bash
clear
echo "faixa ex: 192.168.0"
read FAIXA
echo "inicio da sequencia"
read SEC1
echo "termino da sequencia"
read SEC2
echo ""
echo "Aguarde Varredura"
for IP in $(seq $SEC1 $SEC2); do
ping -c 2 -w 2 $FAIXA.$IP >/dev/null &&
echo "$FAIXA.$IP -up" ||
echo "$FAIXA.$IP -down"
done
echo "gerando arquivo MAC.TXT"
arp -n >mac.txt
echo "listando a lista MAC"
cat mac.txt

[2] Comentário enviado por roneilima em 26/02/2013 - 09:26h

Funcionou perfeitamente!

[3] Comentário enviado por px em 29/06/2013 - 15:04h

interessante, pena que o iptables aqui é nervoso! só consegui fazer funcionar desativando temporariamente... Mais ta valendo! paz.

[4] Comentário enviado por MarceloTheodoro em 02/07/2013 - 08:19h


[3] Comentário enviado por px em 29/06/2013 - 15:04h:

interessante, pena que o iptables aqui é nervoso! só consegui fazer funcionar desativando temporariamente... Mais ta valendo! paz.


px, fiquei curioso. rs
Em teoria isso não devia acontecer... Porque tipo, mesmo que o firewall bloqueie o ping, o MAC dele(o firewall) já estaria na tabela ARP no computador que enviou o comando.
Poderia me mostrar parte desse seu firewall pra eu tentar o workaround? Valeu pelo comentário. :)

[5] Comentário enviado por MarceloTheodoro em 07/07/2013 - 12:26h

Só pra constar: Por algum motivo o código que está aparecendo ali, ainda é o da versão 1.
Para ver o da versão 2, favor fazer o download. ;)

[6] Comentário enviado por caio em 10/07/2013 - 13:05h


[1] Comentário enviado por wdepiatti em 18/02/2013 - 10:53h:

Tem como buscar o MAC da rede toda veja o script abaixo:
#!/bin/bash
clear
echo "faixa ex: 192.168.0"
read FAIXA
echo "inicio da sequencia"
read SEC1
echo "termino da sequencia"
read SEC2
echo ""
echo "Aguarde Varredura"
for IP in $(seq $SEC1 $SEC2); do
ping -c 2 -w 2 $FAIXA.$IP >/dev/null &&
echo "$FAIXA.$IP -up" ||
echo "$FAIXA.$IP -down"
done
echo "gerando arquivo MAC.TXT"
arp -n >mac.txt
echo "listando a lista MAC"
cat mac.txt


Se substituir arp -n > mac.txt por este fica melhor ainda

arp -nv | grep ether | sort -t . -k 3,3n -k 4,4n > mac.txt



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts