使用ksh/bash从列表中检查IP地址



我有一个包含以下数据的列表(文本文件(:

app1 example1.google.com   
app2 example2.google.com  
dev1 device1.google.com  
cell1 iphone1.google.com

我想检查URL/主机名的ip地址,并用收集的ip更新文本文件。示例:

app1 example1.google.com 192.168.1.10  
app2 example2.google.com 192.168.1.55  
dev1 device1.google.com 192.168.1.53  
cell1 iphone1.google.com 192.168.1.199

您可以使用dig来获取IP(但域必须存在(。未针对IPv6进行测试。

#! /bin/bash
while read name url ; do
ip=$(dig -4 $url | grep '^[^;]' | grep -o '([0-9]*[.:])+[0-9.:]*$')
printf '%s %s %sn' "$name" "$url" "$ip"
done < data.txt

如果文件中只有两列,这可能会有所帮助:

awk '{"dig +short " $2 | getline ip ; print $1, $2, ip}' file

首先,我们运行一个subshell(为无数记录运行这个不是一个好主意(;"挖+短";(我想到的只获取IP地址的最短可能性(与机器的FQDN(在第二列中找到(。然后我们打印所有原始列和新列(带有IP地址(。输出可以通过一个>重定向到一个新文件。我不会考虑";"安全";以编辑原始文件。

相关内容

  • 没有找到相关文章

最新更新