como descobrir endereços mac de todas as máquinas na rede

31

Existe alguma maneira fácil de descobrir o endereço mac de todas as máquinas na minha rede, em vez de fazer um SSH em cada e ifconfig | grep HWaddr se houver 300 máquinas na rede, eu realmente preciso de uma solução fácil.

    
por Registered User 09.03.2011 / 12:14

8 respostas

34

Você pode usar o nmap para executar uma verificação de ping.

nmap -sP 192.168.254.*

Starting Nmap 5.00 ( http://nmap.org ) at 2011-03-09 11:32 GMT
Host xyzzy.lan (192.168.254.189) is up (0.00022s latency).
MAC Address: 00:0C:29:5B:A5:E0 (VMware)
Host plugh.lan (192.168.254.196) is up (0.00014s latency).
MAC Address: 00:0C:29:2E:78:F1 (VMware)
Host foo.lan (192.168.254.200) is up.
Host bar.lan (192.168.254.207) is up (0.00013s latency).
MAC Address: 00:0C:29:2D:94:A0 (VMware)
Nmap done: 256 IP addresses (4 hosts up) scanned in 3.41 seconds

Editar:

Um script sed para filtrar a saída para IP - > MAC - coloque isso em um arquivo.

/^Host.*latency.*/{
    $!N
    /MAC Address/{
        s/.*(\(.*\)) .*MAC Address: \(.*\) .*/ -> /
    }
}  
/[Nn]map/d
s/^Host .*is up/& but MAC Address cannot be found/

e usá-lo assim

nmap -sP 192.168.254.0/20 | sed -f sedscript
192.168.254.189 -> 00:0C:29:5B:A5:E0
192.168.254.196 -> 00:0C:29:2E:78:F1
Host foo.lan (192.168.254.200) is up but MAC Address cannot be found.
192.168.254.207 -> 00:0C:29:2D:94:A0
    
por 09.03.2011 / 14:14
15

Use o nmap. Importante para executá-lo como root para que você obtenha os endereços MAC. Exemplo:

sudo nmap -sP 192.168.1.0/24 

Verifica 192.168.1.1 - 192.168.1.255. Procure a notação CIDR na wiki se você não estiver familiarizado com essa notação de sub-rede.

Você deve ser capaz de obter o nmap dos repositórios de qualquer distribuição recente do Linux, por exemplo

sudo apt-get install nmap

ou

sudo yum install nmap

Um exemplo de saída da minha rede:

Host 192.168.1.1 is up (0.0069s latency).
MAC Address: 00:0D:54:9B:D8:F4 (3Com)
Host 192.168.1.78 is up (0.0068s latency).
MAC Address: 00:0C:29:BC:3D:1C (VMware)
Host 192.168.1.91 is up (0.0038s latency).
MAC Address: 00:0C:29:8A:F4:A3 (VMware)
Host 192.168.1.92 is up (0.0039s latency).
MAC Address: 00:0C:29:65:60:5F (VMware)
Host 192.168.1.158 is up (0.033s latency).
MAC Address: 00:0C:29:82:24:EA (VMware)
Host 192.168.1.186 is up (0.0024s latency).
MAC Address: 00:0C:29:3E:26:1F (VMware)
Host 192.168.1.190 is up (0.0066s latency).
    
por 09.03.2011 / 12:30
7

Contanto que você execute esse comando a partir de um host no mesmo segmento de rede, nmap informará que todo o endereço MAC de cada host é descoberto.

Por exemplo:

sudo nmap 192.168.1.0/24 -sP

Starting Nmap 4.76 ( http://nmap.org ) at 2011-03-09 06:29 EST

Host old.net (192.168.1.1) appears to be up.
MAC Address: 00:18:39:C5:A1:DC (Cisco-Linksys)

Para os endereços MAC eu preciso ser root na minha caixa Ubuntu. Além disso, um método simples para um único host é apenas executar o ping e examinar a tabela arp com arp -a se você quiser usar apenas comandos normalmente incluídos na instalação inicial de uma distribuição:

arp -a | grep -v incomplete
foo.net (192.168.1.145) at 00:0d:4b:6a:2c:cb [ether] on eth0
    
por 09.03.2011 / 12:32
7

Experimente este comando:

arp-scan --interface=eth0 192.168.1.0/24
    
por 05.11.2012 / 12:07
5

Dependendo da sua topologia de LAN, sua melhor chance pode ser exibir a tabela de endereços MAC em seus comutadores.

Por exemplo, se a sua infraestrutura de switches for Cisco, você pode tentar um

sh mac address-table

em todos os comutadores.

Se você tiver muitos switches, poderá automatizar essa tarefa com o uso do SNMP .

Outra opção e (novamente) dependendo de sua topologia e seu tipo de equipamento de rede, você também pode tentar obter os endereços mac de seus dispositivos exibindo a tabela arp em seus roteadores.

Com um desses dois métodos, você também obterá a lista de endereços mac de todos os dispositivos conectados à infra-estrutura da sua rede: PCs, impressoras, pontos de acesso, etc. No primeiro caso, mesmo de dispositivos sem endereço IP . Isso pode ou não ser o que você quer, mas vale a pena tentar.

    
por 09.03.2011 / 13:32
1

Talvez arp-scan também seja uma opção:

Veja um exemplo aqui: Guia do usuário do Arp-scan

    
por 09.03.2011 / 12:37
1

Desde que você mencionou o ssh em máquinas na sua rede, você também pode usar este shorty:

nmap -p 22 10.100.10.0/24 >/dev/null ; arp -a
    
por 22.08.2013 / 22:56
0

Você pode usar um programa chamado SIW, é gratuito e analisa a rede que não requer permissões ou argumentos.

URL: link

Disponível em .exe ou instalação completa.

    
por 09.03.2011 / 12:20