在Linux中从IP列表中获取主机名

slmsl1lt  于 2023-10-16  发布在  Linux
关注(0)|答案(1)|浏览(117)

我有一个很长的IP列表,但我需要这些服务器的主机名,我试图用这个命令获取每个服务器:

dig +noall +answer -x <IP-address> | awk '{print $5}'

我得到了结果,我的问题是如何自动化这一点,我知道这是可以做到的,但我缺乏这样做的技能。
该文件名为Linux堆栈如下:

<ip-address1>
    <ip-address2>
    <ip-address3>
    .
    .
    .
    <ip-address100>

我试图创建一个脚本,以自动执行上述命令的结果,并将其输出到另一个文件
更新:
下面是我使用的代码:

#!/usr/bin/bash
while read line; 
do
        dig +noall +noidnin +answer -x "$line" | awk '{print $5}'
        echo
done < linux.hosts > outputfile

现在的问题将是如何确定那些没有解决的问题,不知道如何做到这一点。

z9smfwbn

z9smfwbn1#

dig的结果赋给一个变量,然后你可以检查这个变量是否为空。

#!/usr/bin/bash
while read line
do
    host=$(dig +noall +noidnin +answer -x "$line" | awk '{print $5}')
    echo "$line ${host:-unknown}"
done < linux.hosts > outputfile

如果变量为空,则${host:-unknown}在展开式中替换unknown

相关问题