Назад | Перейти на главную страницу

Как использовать Nmap для проверки связи с доменами и получения результатов в виде доменов, а не IP-адресов?

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

nmap -sP -iL /path/to/file/domains

Пинг работает нормально, но в выводе для доменов, для которых пинг прошел успешно, я получаю IP-адрес домена следующим образом:

Host 66.249.92.104 is up (0.55s latency).

Есть ли способ получить вывод в виде доменов вместо IPS?

Предполагая, что вы не очищали вывод (т.е. 66.249.92.104 действительно является одним из проверяемых хостов), проблема в том, что в DNS нет записи PTR для IP. То есть нет никакого обратного сопоставления IP -> FQDN, которое Nmap может представить в выходных данных.

Например, вот что вы получаете, когда существует запись PTR:

$ nmap -sP www.yahoo.com | grep ^Host
Warning: Hostname www.yahoo.com resolves to 2 IPs. Using 72.30.2.43.
Host ir1.fp.vip.sk1.yahoo.com (72.30.2.43) appears to be up.

Я бы порекомендовал такой двухэтапный процесс (хотя он не так эффективен, поскольку вы запускаете новый процесс nmap для каждого зонда, вы сохраняете свою информацию вместе):

$ cat domains
www.yahoo.com
www.google.com

$ cat nmap-keep-names.sh
#!/bin/sh

for domain in `cat $1`
do
    echo Probing $domain
    nmap -sP $domain 2> /dev/null \
        | grep ^Host
done \
    | sed '$!N;s/\n/ /' \
    | sed 's/Probing //' \
    | sed 's/Host.*(\(.*\)) \(.*\)/(\1) \2/'

$ ./nmap-keep-names.sh domains
www.yahoo.com (72.30.2.43) appears to be up.
www.google.com (66.102.7.104) appears to be up.

Перед запуском Nmap вы просто распечатываете примечание с подробным описанием того, какое имя хоста вы исследуете. Затем вы можете отформатировать вывод, чтобы использовать информацию, которую вы передали в Nmap.

Примечание №1 - 1e100.net - это домен, принадлежащий Google. Так что даже когда запись PTR существует, нет гарантии, что вы этого ожидаете.)

Примечание №2 - в конце я выполнил команду sed, чтобы очистить вывод. В этом нет необходимости, и вывод можно полностью использовать без этого.

Использование -R включает обратное разрешение имен.

добавьте параметр -oG ("greppable output").