Pular para o conteúdo

Pegar MAC através do IP na rede interna

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.
Marcelo Theodoro MarceloTheodoro
Hits: 10.548 Categoria: Shell Script Subcategoria: Miscelânea
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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.
Download iptomac.sh Enviar nova versão

Versões atualizadas deste script

Marcelo Theodoro

Versão 2 enviada 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

Script para subir interface wireless

Indice Bovespa

The Universal Argument Parser (with long options)

Faz backup do MySQL e envia para FTP

Kill gráfico com gdialog

#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

Entre na sua conta para comentar.