Найти имена компьютеров в частной сети (с помощью nmap?)

10

В локальной сети я хочу узнать имена всех подключенных компьютеров, используя кроссплатформенную программу, предпочтительно nmap. Я знаю, что могу сделать

nmap -sn xxx.xxx.xxx.xxx/24

(где xxx.xxx.xxx.xxx - это локальный IP-адрес), чтобы найти работающие хосты, но как мне найти имена компьютеров? Они транслируют это так, как я могу найти с помощью nmap?

ОБНОВЛЕНИЕ: похоже, Angry IP Scanner может это сделать. Как оно работает? Могу ли я повторить это с Nmap?

bsamek
источник
3
какие имена хостов? DNS-имена? Задайте свой DNS-сервер.
Ragnq
@ragnq nslookup не дает мне имена хостов, а Angry Port Scanner делает. Я пытаюсь выяснить, как сделать это с помощью Nmap и / или инструментов командной строки.
bsamek 16.11.11

Ответы:

0

Я использовал nmap и другие IP-сканеры, такие как Angry IP-сканер. Мое наблюдение состояло в том, что Nmap использовал Обратный DNS для разрешения имен хостов, поэтому для работы DNS-сервера должны иметь записи обратного указателя для хостов. Я обнаружил, что другие сканеры выполняют запрос PTR с помощью запроса Netbios.

Если вы уверены, что все хосты в целевой сети являются хостами Windows и на них включена поддержка NETBIOS, вы можете использовать инструмент nbtscan для их сканирования.

Бенни
источник
3

Из часто задаваемых вопросов Angry IP Scanner (« Имена хостов не показаны »):

Angry IP Scanners отображает имена хостов, возвращенные вашим DNS-сервером (имя), выполнив обратный поиск . Сервер получает IP-адрес и возвращает имя хоста, если он его знает.

Если какой-либо компьютер знает свое имя, это не значит, что он предоставил ему сетевой DNS-сервер. Другими словами, имя хоста в том виде, в котором оно само себя знает (локальное имя), и имя, связанное с IP-адресом (глобальным именем), как оно известно DNS-сервером, может не всегда совпадать.

Очень часто DNS-запросы возвращают некоторые общие имена, например, dhcp-12-13.superisp.com, особенно в сетях ISP.

Имена совпадают в любом из этих случаев:

  • Ваш компьютер отправил имя DHCP-серверу, с которого он получил IP-адрес, а DHCP-сервер предоставил его локальному DNS-серверу.
  • У вас есть статический IP-адрес, и ваше локальное имя хоста настроено в соответствии с правилами, которые соответствуют глобальному соглашению об именах в вашей сети.
  • Стек TCP вашего хоста возвращает локальное имя, если запрашивается локальный IP-адрес, не спрашивая глобального имени

Из документации Nmap (« Обнаружение хоста »):

По умолчанию Nmap по-прежнему выполняет обратное разрешение DNS на хостах, чтобы узнать их имена.

Дополнительное чтение / информация здесь .

Ƭᴇcʜιᴇ007
источник
В сети, над которой я работаю, Angry IP Scanner показывает мне имена хостов, предположительно путем обратного поиска DNS. То, что вы говорите, это то, что nmap также выполняет обратный поиск. Но это не отображает имена хостов. Как я могу получить его для отображения имен хостов? Или это неправильный инструмент для этой работы?
bsamek 16.11.11
1

Оказывается, я должен указать, --system-dnsчтобы получить имена машин в сети. Я не уверен, почему это работает. Может быть, в настройке DNS есть что-то неожиданное?

ОБНОВЛЕНИЕ: Фактически, это работает на одной VLAN, но не на другой, но Angry IP Scanner работает на обеих.

bsamek
источник
0

Вы также можете использовать nmap -A xxx.xxx.xxx.xxx его, чтобы показать имена хостов в выводе. в моей сети я передаю его через grep, чтобы получить только ту информацию, которую я хочу. ~grep -e 'scan report' -e 'Computer name'

linuxfreak003
источник