Как сканер портов сообщает имена хостов в локальной сети?

249
Nick Lee

Программное обеспечение сканера портов, которое я использую, может перечислять IP-адреса вместе с их именами хостов в моей локальной сети. Я очень озадачен тем, как он получает имена хостов. Например, у меня есть несколько Raspberry Pi в локальной сети, и программное обеспечение сканера портов может перечислить все их имена хостов.

Я использую netstat -antна Pi, чтобы узнать, что он прослушивает не порт, кроме порта 22 (SSH), поэтому я не думаю, что он может отвечать на любые другие протоколы.

Я также пробую различные nmapкоманды, но ни одна из них не показывает имя хоста:

sudo nmap -sP 192.168.0.* sudo nmap 192.168.0.102 sudo nmap -R 192.168.0.102 

Может кто-нибудь сказать мне, как программное обеспечение моего сканера портов получить имена хостов? Это запрос к маршрутизатору?

Дополнительная информация: ПО сканера портов называется Advanced Port Scanner.

0
Пожалуйста [отредактируйте] вопрос, чтобы включить название программного обеспечения, которое вы используете. DavidPostill 6 лет назад 4
Если вы можете выполнить обратный поиск DNS для имен локальных сетей (поскольку маршрутизатор предоставляет их) вручную, используя `host` и т. Д., Лучше всего предположить, что программное обеспечение сканера портов, каким бы оно ни было, делает то же самое, потому что это очевидный метод. dirkt 6 лет назад 1

1 ответ на вопрос

0
Nick Lee

Наконец, я нашел проект с открытым исходным кодом Angry IP Scanner, посмотрел исходный код и нашел ответ.

В основном он запрашивает UDP-порт целевой машины 5353 (многоадресная DNS) и порт 137 (NetBIOS), чтобы найти имя хоста этой машины.

Я пропустил эти порты, потому что netstat -antотображает только порты TCP. netstat -anuпоймал бы их.