Извлечение IP-адресов из нескольких сайтов, используя bash и awk - PullRequest
0 голосов
/ 30 июня 2018

Я ищу лучший способ получить IP-адреса нескольких сайтов и выводить их как "domain.com:","1.1.1.1", чтобы добиться этого, я думал об использовании nslookup (не уверен, что это лучший вариант, но я не хочу использовать пинг)

Ну, я пытался что-то вроде:

for domain in $(cat domains.txt)
do
   nslookup $domain 8.8.8.8 | awk '/Address: ([[:digit:]]+\.){3}/{gsub(/\.$/,"",$1); printf "\"%s\",\"%s\"\n",$1,$NF}'; done

С этим я получаю этот вывод:

"Address:","64.233.190.101"
"Address:","64.233.190.138"
"Address:","64.233.190.100"
"Address:","64.233.190.139"
"Address:","64.233.190.113"
"Address:","64.233.190.102"
"Address:","98.137.246.8"
"Address:","98.138.219.231"
"Address:","72.30.35.9"
"Address:","72.30.35.10"
"Address:","98.138.219.232"
"Address:","98.137.246.7"
"Address:","93.184.216.34"

Ожидаемый результат

"google.com","64.233.190.101"
"google.com","64.233.190.138"
"google.com","64.233.190.100"
"google.com","64.233.190.139"
"google.com","64.233.190.113"
"google.com","64.233.190.102"
"yahoo.com","98.137.246.8"
"yahoo.com","98.138.219.231"
"yahoo.com","72.30.35.9"
"yahoo.com","72.30.35.10"
"yahoo.com","98.138.219.232"
"yahoo.com","98.137.246.7"
"example.com","93.184.216.34"

domains.txt содержание:

google.com
yahoo.com
example.com

Я пытался сделать это, но я не могу получить правильный домен под "domain.com", на выходе.

Я не уверен, что если вы используете $ domain или awk, может ли кто-нибудь помочь мне получить правильный синтаксис. Обратите внимание, что мне нужен запрашиваемый домен внутри "domain.com",, а не Name: в nslookup

Спасибо.

1 Ответ

0 голосов
/ 30 июня 2018
domain="mail.yahoo.com"
nslookup "$domain" 8.8.8.8 | awk -v n="$domain" -F ' +' '$1=="Address:"{print "\""n"\",\""$2"\""}'

Выход:

"mail.yahoo.com","87.248.116.12"
"mail.yahoo.com","87.248.116.11"
...