Pegar MAC através do IP na rede interna

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

[ Hits: 9.962 ]

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

Filtro para importação de extrato do Banco do Brasil para Kmymoney

Cotação de Criptomoedas

Calculadora 1.0

Biblioteca de cores para o Bash

Script para atualização de hora


  

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