Linux脚本来检查DNS是否具有与同一列表中的IP地址相同的IP

时间:2019-03-05 15:09:31

标签: linux bash shell awk

我有以下格式的DNS和IP地址列表:

  

DNS IP

     

DNS IP

     

DNS IP

我需要做一个执行dig +short DNS的脚本,并检查它是否具有与其旁边相同的IP,以及所有文档的IP。想法是,如果相同,则返回$DNS and $IP match之类的消息,如果相同,则返回错误消息。

我尝试过使用awk '{ DDD=$(dig +short $1); if ( $DDD == $2 ); then; print "'$DDD' and '$2' match."; fi }' all.log

但是结果是:

  

(空格)和(空格)匹配。

     

(空格)和(空格)匹配。

     

(空格)和(空格)匹配。

1 个答案:

答案 0 :(得分:1)

这是仅使用bash的简单答案:

while read DNS IP; do
  DDD=$(dig +short "$DNS")
  if [ "$DDD" = "$IP" ]; then
    echo "'$DDD' and '$IP' match."
  else
    echo "'$DDD' and '$IP' do not match."
  fi
done < all.log

请注意,dig +short NAME命令可能会返回多行内容,在这种情况下脚本将无法工作...