将域名解析为 IP

将域名解析为 IP

我有一个文件,每行都包含子域名。我想使用 bash 脚本将这些子域名转换为 IP。我的文件:

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

我想要一个包含这些 IP 的新文件。

我想用循环来完成这个。

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

那部分应该是什么........

答案1

使用单个awk命令:

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

解释:

这里我们将 shell 命令设置为host $0并分配给名为的变量cmd。然后cmd |getline $0我们调用该命令从管道使用 getline它将awk输入文件中的行传递infilecmd,然后打印第一个和最后一个字段(域和 IP)。最后我们需要关闭我们打开的命令,所以我们使用close(cmd)将其关闭。

输入:

askubuntu.com
stackexchange.com

结果:

askubuntu.com 11.22.33.44
stackexchange.com 55.66.77.88

答案2

for line in $(cat subdomains.txt); do
     nslookup $line | grep Address | grep -v "#53" | awk {'print $2'} >> ips.txt
done

相关内容