Получить имена устройств в сети

14

Я хотел знать имена всех устройств в сети. Я уже безуспешно пытался найти много команд, найденных в сети, но ничего не получалось так, как я хотел.

Обычно, когда я вхожу в настройки маршрутизатора, я могу получить имена устройств, которые подключены к моей сети. Я могу получить это также в некоторых приложениях, так что, думаю, это можно сделать каким-то образом.

Я хочу получить список имен всех устройств, подключенных к моей сети Wi-Fi через командную строку.

Спасибо


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
Федерико Понци
источник

Ответы:

8

Я обычно использую fing для этого, это сканер, который сканирует подсеть, в которой вы находитесь, и пытается извлечь имена хостов и отображать их вместе с ip и MAC.

Пример:

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

Как видите, не все устройства выдают свое имя хоста; например, некоторые периферийные устройства, такие как принтеры, не всегда предоставляют имена хостов, но большинство устройств делают. Он даже пытается угадать производителя, анализируя id-часть MAC

Он работает на Raspberry Pi, я установил его на моем некоторое время назад, и он работает, как ожидалось.

Джейк
источник
1
Как вы устанавливаете fing? Ваша ссылка устарела и не включена ни в одно из хранилищ Raspberry Pi.
Патрик Кук
5
Пожалуйста, укажите, как вы вызывали fing для получения этого вывода Без команды ответ неполон.
user666412
2
Я использовал 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 для установки, а затем fingзапустить его. Он не сообщал имя хоста для моего Rpi, но распознал его как HW Address: B8:27:EB:1B:E6:0C (Raspberry Pi Foundation).
Дейв X
1
Ни одно имя хоста не обнаружено в сети из 22 устройств в первой тестовой сети. То же самое с другими 24 хозяевами. Fing, а пока (февраль 2018 г.) кажется мне беспорядком.
Сопалахо де Арриерес
5
Ссылка все еще верна? Теперь это скорее продукт IoT, а не инструмент командной строки.
Venryx
8

Ни один из приведенных выше ответов не помог мне, поэтому я начал возиться с arp-scan. Итак, я обнаружил, что работал:

arp-scan -I [WIFI INTERFACE] -l

arp-scan сканирует вашу сеть и выводит список устройств. -Я выбираю интерфейс, а -l говорит arp-scan посмотреть локальную сеть. Далее введите

arp

Это вернет arp-scan устройств, только что найденных, и перечислит их имена хостов и MAC-адреса.

GarrukApex
источник
6

Я думаю, что вам нужно быть более точным в вашей проблеме, особенно в определении имени устройства .

К сожалению, в данный момент у меня нет доступа к Raspberry Pi, поэтому все, что здесь показано, взято из моей коробки Debian 7.

nmap -sP выполняет обратный поиск DNS, поэтому, если ваши устройства имеют обратные записи DNS, его вывод выглядит следующим образом:

> 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).
…

Хосты, которые блокируют пинг-зонды, не будут отображаться на выходе. Также не будут хосты, которые не предлагают услуги на портах, которые вы сканируете, используя эту -pопцию. Сканирование всего диапазона портов с -p 0-65535помощью значительного сетевого следа все равно не покажет хосты, у которых просто нет открытых портов.

Единственная надежная информация о хостах в вашей сети - это то, что у них есть MAC и IP-адреса. Ваш DHCP-сервер знает их оба, так как он назначил IP-адреса. Кроме того, многие клиенты DHCP отправляют имя узла, включенное в их запрос DHCP, поэтому у сервера DHCP есть имя для этого устройства, даже если это имя больше нигде не отображается (DNS, SMB,…).

К сожалению, ваш DHCP-сервер, похоже, не сообщает динамически назначенные IP-адреса вашему серверу имен, поэтому вы не можете получить эту информацию.

Чтобы найти все устройства в вашей сети, вы можете сбросить таблицу ARP после пинга всех хостов (например, используя 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
…

С MAC и IP-адресами у вас есть единственная достоверная информация о вашем сетевом окружении. Зондирование открытого порта 445 покажет вам устройства, которые, скорее всего, поддерживают SMB (то есть сеть Windows) - и, следовательно, имеют имя Windows.

Подключение к другим открытым портам (например, 21 / ftp, 22 / ssh, 23 / telnet,…) также может предлагать имена хостов, но всегда в зависимости от протокола - и теоретически хосты могут называть себя по-разному на всех портах.

В качестве альтернативы вы можете настроить свой собственный сервер DHCP и DNS на Pi и предоставить работающую службу обратного DNS.

Если все ваши устройства поддерживают Zeroconf , вы можете выполнить обнаружение устройств таким образом.

ua2b
источник
3

Чтобы получить имя устройства хостов Windows, используйте

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

(источник: http://www.blackbytes.info/2013/07/finding-windows-host/ )

рант
источник
Чао Симоне! Это работает только для хостов Windows, но мне нужно обнаружить каждое имя устройства в моей сети.
Федерико Понци
1
Я могу ошибаться, но я не уверен, что понятие «имя устройства» будет для машины Linux. Самое близкое, о чем я могу подумать, - это имя хоста, определенное в / etc / HOSTNAME или / etc / hostname, но я не знаю, можно ли его получить, спросив у компьютера (если, конечно, DNS-сервер не предоставит его) ,
ранд
1

В Linux вы можете использовать nbtscanдля достижения того, что вы ищете.

Запустите sudo apt-get install nbtscanдля установки.

Чтобы просмотреть имена хостов устройств, подключенных к вашей сети,

бежать sudo nbtscan 192.168.0.1-192.168.0.255,

предполагая, что хост находится в 192.168.0.1и использует маску подсети 255.255.255.0. Настройте диапазон IP в соответствии с вашей конфигурацией сети.

TheLinuxEvangelist
источник
Это может разрешить только имена NetBIOS.
Пирз
И для моих тестов, кажется, не отображаются все имена NetBIOS в сети.
Сопалахо де Арриес
0

Здесь приведены три ответа, nmapно я обнаружил, что префикс sudo(чего не делает ни один из ответов) имеет все значение в мире:

$ 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

Я наткнулся на эти вопросы и ответы, потому что я исследую проект о том, как отображать удобочитаемые имена, а не компьютерные IP-адреса и MAC-адреса для устройств.

В частности, я хочу, чтобы "Toshiba 43" 4K TV "отображалось, а не" (неизвестно) "для MAC 99:99:99:99:99:36(не реальный адрес) выше.

Позже я хочу расширить проект за пределы локальной сети до Интернета, где вместо «Отображение стека » будет отображаться 999.999.9.99или вместо « Просить Ubuntu » вместо 999.999.9.99просмотра внешних IP-адресов, с которыми взаимодействует моя машина.

WinEunuuchs2Unix
источник
-1

jcbermu очень близко, но со страницы руководства 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.

Если он хранится в записи rDNS, он найдет его, в противном случае вам, возможно, придется прослушивать запросы DHCP и перехватывать их.

SailorCire
источник
-2

Вам нужен Nmap . Введите команду как:

nmap -sP 192.168.1.0/24

и он выполнит обнаружение сети в подсети, 192.168.1.0 - 192.168.1.255показывая вам имена и IP-адреса всех устройств в этой сети.

jcbermu
источник