我在 Mac 10.9.1 上使用 bash shell。给定一个主机名文件,其中可能包含像
这样的条目dave.mydomain.com
dave2.otherdomain.com
somethingelse.whatever.com
如何确定文件中的哪些主机名未解析为 IP 地址?
最佳答案
从文件中读取每个主机名,执行主机名的 DNS 查找,并检查响应:
#!/bin/bash
while read hstnm
do
if ! host ${hstnm} > /dev/null
then
echo "No ip for ${hstnm}"
fi
done < hostnames.txt
我使用了 host
此示例中的实用程序,但您也可以使用 dig
(例如,通过管道传输到 grep -q
以获取“NXDOMAIN”)或 nslookup
.
dig
+ grep
示例:
#!/bin/bash
while read hstnm
do
if dig ${hstnm} | grep -q 'NXDOMAIN'
then
echo "no ip for ${hstnm}"
fi
done < hostnames.txt
https://stackoverflow.com/questions/24046360/