Resolvendo Domínios para IPs

0

Eu tenho um arquivo cheio de subdomínios de cada linha. E eu quero converter esses subdomínios para IPs usando o script bash. meu arquivo:

 subdomain1.example.com
 subdomain2.example.com
 ...

e eu quero um novo arquivo cheio de IPs destes.

Eu quero fazer isso com um loop.

for line in $(cat subdomains.txt)
    do
   .......
done < ip.txt

O que deveria estar em ........ parte?

    
por codergirrl 19.10.2017 / 22:09

2 respostas

2

Com o comando awk único:

awk '{cmd="host "$0; cmd|getline $0; print $1,$NF;close(cmd)}' infile

Explicação:

Aqui, definimos um comando shell como host $0 e atribuímos a uma variável chamada cmd . Então, com cmd |getline $0 , chamamos esse comando Usando o getline de um Pipe , que awk passa a linha da entrada infile file para a cmd , depois imprime o primeiro e o último campo (domain & amp; IP). No final, precisamos fechar o comando que abrimos, então usamos close(cmd) para fechá-lo.

Entrada:

askubuntu.com
stackexchange.com

Resultado:

askubuntu.com 11.22.33.44
stackexchange.com 55.66.77.88
    
por sddgob 19.10.2017 / 22:21
1
for line in $(cat subdomains.txt); do
     nslookup $line | grep Address | grep -v "#53" | awk {'print $2'} >> ips.txt
done
    
por Alex Austin 20.10.2017 / 12:54