Obter nomes de dispositivos na rede

13

Eu queria saber os nomes de todos os dispositivos na rede. Eu já tentei sem grande sucesso muitos comandos encontrados na web, mas nada funcionou como eu queria.

Basicamente, quando entro nas configurações do meu roteador, consigo os nomes dos dispositivos conectados à minha rede. Também posso obtê-lo em alguns aplicativos, então acho que isso pode ser feito de alguma maneira.

Quero uma lista de nomes de todos os dispositivos conectados à minha rede Wi-Fi via linha de comando.

obrigado


pi@raspberrypi ~ $ nmap -sP 192.168.4.0/24

Starting Nmap 6.00 ( http://nmap.org ) at 2015-03-05 13:55 UTC
Nmap scan report for 192.168.4.1
Host is up (0.0055s latency).
Nmap scan report for 192.168.4.2
Host is up (0.42s latency).
Nmap scan report for 192.168.4.4
Host is up (0.045s latency).
Nmap scan report for 192.168.4.5
Host is up (0.47s latency).
Nmap scan report for 192.168.4.6
Host is up (0.0032s latency).
Nmap scan report for 192.168.4.7
Host is up (0.79s latency).
Nmap scan report for 192.168.4.8
Host is up (0.0024s latency).
Nmap scan report for 192.168.4.9
Host is up (0.038s latency).
Nmap scan report for 192.168.4.10
Host is up (0.034s latency).
Nmap scan report for 192.168.4.11
Host is up (0.029s latency).
Nmap scan report for 192.168.4.22
Host is up (0.12s latency).
Nmap scan report for 192.168.4.27
Host is up (0.031s latency).
Nmap scan report for 192.168.4.28
Host is up (0.012s latency).
Nmap scan report for 192.168.4.100
Host is up (0.0038s latency).
Nmap done: 256 IP addresses (14 hosts up) scanned in 49.30 seconds
Federico Ponzi
fonte

Respostas:

8

Eu costumo usar o dedo para isso, é um scanner que varre a sub-rede em que você está e tenta extrair nomes de host e exibi-los juntamente com ip e MAC.

Ex:

14:19:05 > Discovery profile: Default discovery profile
14:19:05 > Discovery class:   data-link (data-link layer)
14:19:05 > Discovery on:      192.168.1.0/24

14:19:05 > Discovery round starting.
14:19:05 > Host is up:   192.168.1.151
           HW Address:   XX:XX:XX:XX:XX:XX
           Hostname:     My-laptop-hostname

14:19:05 > Host is up:   192.168.1.1
           HW Address:   YY:YY:YY:YY:YY:YY
           Hostname:     router.asus.com

14:19:06 > Discovery progress 25%
14:19:07 > Discovery progress 50%
14:19:08 > Discovery progress 75%
14:19:05 > Host is up:   192.168.1.10
           HW Address:   AA:BB:CC:DD:EE:FF (ASUSTek COMPUTER)

14:19:05 > Host is up:   192.168.1.11
           HW Address:   GG:HH:II:JJ:KK:LL

14:19:06 > Host is up:   192.168.1.99
           HW Address:   MM:NN:OO:PP:QQ:RR (Apple)
           Hostname:     iPhoneOfSomeone

Como você pode ver, nem todos os dispositivos fornecem seu nome de host; por exemplo, alguns periféricos como impressoras nem sempre fornecem nomes de host, mas a maioria dos dispositivos. Ele até tenta adivinhar o fabricante analisando a parte de identificação do MAC

Ele roda no Raspberry Pi, instalei-o no meu há um tempo e funciona como esperado.

Jake
fonte
1
Como você instala o fing? Seu link está inoperante e não está incluído em nenhum repositório do Raspberry Pi.
Patrick Cook
5
Por favor, indique como você ligou para obter essa saída. Sem o comando, a resposta está incompleta.
user666412
2
Eu usei um apt-get install libpcap-dev ; wget https://www.fing.io/wp-content/uploads/2016/10/overlook-fing-3.0.deb ; dpkg -i overlook-fing-3.0.deb para instalar e depois fingexecutá-lo. Ele não relatou um nome de host para o meu Rpi, mas o reconheceu como HW Address: B8:27:EB:1B:E6:0C (Raspberry Pi Foundation).
Dave X
1
Nem um nome de host foi detectado em uma rede de 22 dispositivos em uma primeira rede de teste. Mesmo com outros 24 hosts. Fing, por enquanto (fevereiro de 2018) me parece uma bagunça.
Sopalajo de Arrierez 02/02
5
O link ainda está correto? Parece ser agora um produto de IoT, e não uma ferramenta de linha de comando.
Venryx 22/03/19
7

Nenhuma das respostas acima funcionou para mim, então comecei a brincar com o arp-scan. Então, o que eu achei que funcionou foi:

arp-scan -I [WIFI INTERFACE] -l

O arp-scan verifica sua rede e lista dispositivos. -I seleciona a interface e -l diz ao arp-scan para examinar a rede local. Em seguida, digite

arp

Isso retornará os dispositivos que o arp-scan acabou de localizar e listará seus nomes de host e endereços MAC.

GarrukApex
fonte
6

Eu acho que você precisa ser mais preciso sobre o seu problema, especialmente a definição de um nome de dispositivo .

Infelizmente eu não tenho acesso a um Raspberry Pi no momento, então tudo exibido aqui vem da minha caixa Debian 7.

nmap -sP faz pesquisas reversas de DNS; portanto, se seus dispositivos tiverem entradas reversas de DNS, sua saída será semelhante a esta:

> nmap -sP 192.168.4.0/24
Starting Nmap 6.00 ( http://nmap.org ) at 2015-03-12 06:24 CET
Nmap scan report for device1.local (192.168.4.1)
Host is up (0.0021s latency).
Nmap scan report for device2.local (192.168.4.2)
Host is up (0.014s latency).
…

Os hosts que bloqueiam os testes de ping não aparecerão na saída. Nem os hosts que não oferecem serviços nas portas que você digitaliza usando a -popção A varredura de todo o intervalo de portas -p 0-65535, enquanto gera uma presença significativa na rede, ainda não mostrará hosts que simplesmente não têm portas abertas.

A única informação confiável que você tem sobre hosts na sua rede é que eles têm endereços MAC e IP. Seu servidor DHCP conhece os dois, pois atribuiu os endereços IP. Além disso, muitos clientes DHCP enviam um nome de host incluído em sua solicitação de DHCP, para que o servidor DHCP tenha um nome para este dispositivo, mesmo que esse nome não apareça em nenhum outro lugar (DNS, SMB,…).

Infelizmente, seu servidor DHCP parece não relatar os endereços IP atribuídos dinamicamente ao seu servidor de nomes, portanto você não pode recuperar essas informações.

Para encontrar todos os dispositivos na sua rede, você pode despejar a tabela ARP após executar ping em todos os hosts (por exemplo, usando nmap -sP):

> arp -vn
Address               HWtype  HWaddress           Flags Mask            Iface
192.168.4.1           ether   12:34:56:78:9a:bc   C                     wlan0
192.168.4.2           ether   11:22:33:44:55:66   C                     wlan0
…

Com os endereços MAC e IP, você tem as únicas informações consistentes sobre a vizinhança da sua rede. A investigação de uma porta aberta 445 mostrará os dispositivos que provavelmente suportam SMB (ou seja, rede Windows) - e, portanto, têm um nome de janela.

A conexão com outras portas abertas (por exemplo, 21 / ftp, 22 / ssh, 23 / telnet, ...) também pode oferecer os nomes de host, mas sempre de maneira dependente do protocolo - e os hosts podem, teoricamente, se chamar de maneira diferente em todas as portas.

Como alternativa, você pode configurar seu próprio servidor DHCP e DNS no Pi e fornecer um serviço DNS reverso em funcionamento.

Se todos os seus dispositivos suportarem o Zeroconf , você poderá fazer uma descoberta de dispositivo dessa maneira.

ua2b
fonte
3

Para obter o nome do dispositivo dos hosts do Windows, use

nmap --script smb-os-discovery -p 445 192.168.1.0/24

(fonte: http://www.blackbytes.info/2013/07/finding-windows-host/ )

rand
fonte
Ciao Simone! Isso funciona apenas para hosts Windows, mas preciso descobrir todos os nomes de dispositivos na minha rede.
Federico Ponzi
1
Posso estar errado, mas não tenho certeza de qual seria o conceito de "nome do dispositivo" para uma máquina Linux. O mais próximo que consigo pensar é o nome do host definido em / etc / HOSTNAME ou / etc / hostname, mas não sei se você pode obtê-lo perguntando à máquina (a menos que, é claro, seja fornecido por um servidor DNS) .
Rand
1

No Linux, você pode usar nbtscanpara alcançar o que procura.

Execute sudo apt-get install nbtscanpara instalar.

Para visualizar os nomes de host do dispositivo conectados à sua rede,

corra sudo nbtscan 192.168.0.1-192.168.0.255,

assumindo que o host esteja em 192.168.0.1e use uma máscara de sub-rede de 255.255.255.0. Ajuste o intervalo de IPs de acordo com a sua configuração de rede.

TheLinuxEvangelist
fonte
Isso pode resolver apenas nomes NetBIOS.
Pierz
E, para os meus testes, parece não mostrar todos os nomes NetBIOS na rede.
Sopalajo de Arrierez 02/02
0

Três respostas aqui se referem, nmapmas achei que o prefixo sudo(que nenhuma das respostas faz) faz toda a diferença no mundo:

$ nmap -sP 192.168.1.0/24

Starting Nmap 7.01 ( https://nmap.org ) at 2019-07-13 14:55 MDT
Nmap scan report for 192.168.1.65
Host is up (0.00037s latency).
Nmap scan report for 192.168.1.66
Host is up (0.00035s latency).
Nmap scan report for 192.168.1.67
Host is up (0.00028s latency).
Nmap scan report for 192.168.1.68
Host is up (0.00025s latency).
Nmap scan report for 192.168.1.70
Host is up (0.017s latency).
Nmap scan report for 192.168.1.254
Host is up (0.00070s latency).
Nmap done: 256 IP addresses (6 hosts up) scanned in 6.86 seconds

$ sudo nmap -sP 192.168.1.0/24

Starting Nmap 7.01 ( https://nmap.org ) at 2019-07-13 14:56 MDT
Nmap scan report for 192.168.1.65
Host is up (0.00050s latency).
MAC Address: 99:99:99:99:99:A6 (Unknown)
Nmap scan report for 192.168.1.66
Host is up (0.00016s latency).
MAC Address: 99:99:99:99:99:D9 (Sony)
Nmap scan report for 192.168.1.70
Host is up (-0.087s latency).
MAC Address: 99:99:99:99:99:36 (Unknown)
Nmap scan report for 192.168.1.254
Host is up (0.0020s latency).
MAC Address: 99:99:99:99:99:00 (Actiontec Electronics)
Nmap scan report for 192.168.1.67
Host is up.
Nmap scan report for 192.168.1.68
Host is up.
Nmap done: 256 IP addresses (6 hosts up) scanned in 2.41 seconds

Eu me deparei com estas perguntas e respostas porque estou pesquisando um projeto sobre como exibir nomes legíveis por humanos em vez de endereços IP e endereços MAC codificados por computador para dispositivos.

Em particular, quero que "Toshiba 43" 4K TV "seja exibido em vez de" (desconhecido) "para MAC 99:99:99:99:99:36(não endereço real) acima.

Mais tarde, quero expandir o projeto além da Rede de Área Local para a Internet, onde " Stack Exchange " será exibido em vez de 999.999.9.99ou " Ask Ubuntu " será exibido em vez de 999.999.9.99quando estiver olhando para endereços IP externos com os quais minha máquina está interagindo.

WinEunuuchs2Unix
fonte
-1

O jcbermu está muito próximo, mas da página de manual do nmap:

-sL (List Scan) .
       The list scan is a degenerate form of host discovery that simply lists each host of the network(s) specified, without sending any packets to the target hosts. By default, Nmap still does
       reverse-DNS resolution on the hosts to learn their names.

Se ele estiver armazenado em uma entrada rDNS, ele será encontrado; caso contrário, talvez você precise escutar solicitações de DHCP e interceptá-las.

SailorCire
fonte
-2

Você precisa do nmap . Emita um comando como:

nmap -sP 192.168.1.0/24

e fará uma descoberta de rede na sub-rede, 192.168.1.0 - 192.168.1.255mostrando nomes e endereços IP de todos os dispositivos nessa rede.

jcbermu
fonte