[英]Using Whois to iterate through file with ip addresses
到目前為止,我有一個腳本,該腳本可以獲取訪問我的網站的IP地址:
sudo awk '{ print $1 } ' /var/log/httpd/access_log | sort | uniq > ~/bad_ips.out
我正在嘗試使用whois遍歷這些ip地址,並使用ip來自的唯一國家/地區列表重寫為初始文件。
我可以像這樣單獨進行操作:
whois -l 93.94.186.228 | grep 'country'
whois -l 93.94.186.228 | grep 'country' | awk '{print $2}'
但是我不確定如何遍歷文件中的每一個,任何幫助將不勝感激
xargs
可能符合您的條件。 它基本上為傳遞給其stdin的每一行運行給定命令。 您可以在man xargs
查看更多詳細信息。
您還可以通過使用-u
選項sort
和使用awk
本身來匹配模式country
來減少管道中的命令。
這將滿足您的要求:
awk '{print $1} ' /var/log/httpd/access_log | sort -u | xargs whois -l | awk '/country/{print $2}'
如果每個條目都在換行符上,則可以使用while循環:
#! /bin/bash
while read line
do
echo $line
done < $1
像這樣使用腳本:
./nameOfScript fileWithIps.txt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.