2014-09-24 45 views
0

我通过命令需要IP地址的列表我使用bash脚本但有些领域的如google.com有很多IP地址我只需要一个结果列出的IP行,用bash脚本行

#!/bin/bash 
while read domain; do 
ipaddr=$(dig +short $domain) 
echo -e "$ipaddr" >> results.csv 
done < domainlist.txt 

输出(如果我们以谷歌为例)

173.194.35.101 
173.194.35.102 
173.194.35.96 
173.194.35.110 
173.194.35.98 
173.194.35.100 
173.194.35.99 
173.194.35.104 
173.194.35.103 
173.194.35.97 
173.194.35.105 

我只需要

+0

'head -1'得到第一行。 – fedorqui 2014-09-24 08:54:41

+0

@fedorqui说的是:'ipaddr = $(dig + short $ domain | head -1)' – 2014-09-24 08:55:24

回答

2
#!/bin/bash 
while read domain; do 
ipaddr=$(dig +short $domain | head -1) 
echo -e "$ipaddr" >> results.csv 
done < domainlist.txt 

检查这是否正常。

ipaddr=$(dig +short $domain | head -1) 

管道通过head -1应该由命令返回ip.s的列表中返回的第一个IP。

+1

这就是他/她预计的我猜。根据我的理解,他/她想为每个域名分配一个IP。 – Fazlin 2014-09-24 09:04:05

+1

解释添加:) – Fazlin 2014-09-24 09:13:30

+0

感谢每一个是的我只需要一个IP – user2914397 2014-09-24 09:16:58

0

它管道head第一行:

ipaddr=$(dig +short $domain | head -n 1)