如何确定哪些主机名无法解析为IP地址?

时间:2014-06-04 19:52:46

标签: bash shell hostname

我在Mac 10.9.1上使用bash shell。给定一个主机名文件,这可能会导致像

这样的条目
dave.mydomain.com
dave2.otherdomain.com
somethingelse.whatever.com

如何确定文件中的哪个主机名无法解析为IP地址?

1 个答案:

答案 0 :(得分:2)

从文件中读取每个主机名,执行主机名的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