ОБНОВЛЕНИЕ : все еще открыт для решений, использующих nslookup without parallel
, dig
или drill
Мне нужно написать скрипт, который сканирует файл, содержащий адреса веб-страниц в каждой строке и добавляет к этим строкам IP-адрес, соответствующий имени, используя команду nslookup
. На данный момент скрипт выглядит следующим образом:
#!/usr/bin/
while read ip
do
nslookup "$ip" |
awk '/Name:/{val=$NF;flag=1;next} /Address:/ &&
flag{print val,$NF;val=""}' |
sed -n 'p;n'
done < is8.input
Входной файл содержит следующие веб-сайты:
www.edu.ro
vega.unitbv.ro
www.wikipedia.org
Окончательный вывод должен выглядеть следующим образом:
www.edu.ro 193.169.21.181
vega.unitbv.ro 193.254.231.35
www.wikipedia.org 91.198.174.192
Основная проблема, с которой я сталкиваюсь в текущем состоянии скрипта, состоит в том, что он берет имена из nslookup
(что хорошо для www.edu.ro) вместо того, чтобы брать псевдонимы, когда они доступны. Мой вывод выглядит следующим образом:
www.edu.ro 193.169.21.181
etc.unitbv.ro 193.254.231.35
dyna.wikimedia.org 91.198.174.192
Я думал о реализации if-else
для псевдонимов, но я не знаю, как это сделать в текущей команде. Также скрипт может быть изменен, если кто-то лучше понимает, как отформатировать nslookup, чтобы он отображался как приведенный вывод.