我從訪問日誌中取得 IP 位址,我想找出這些 IP 位址來自哪裡。為此,我使用以下腳本:
cat /var/log/nginx/access.log |awk '{ print $1}'|sort| uniq -c |sort -n -r | awk '{print $2}'
輸出範例如下:
1.2.3.4
5.6.7.8
...
nslookup
我可以使用管道命令將結果傳遞給|
,但結果不容易可讀,因此我嘗試使用該host
命令,但唯一的輸出是如何使用該host
命令的資訊。
如何使用host
指令批次解析ip位址?
答案1
您可以使用 xargs,它將標準輸入中的輸入轉換為命令的參數。
選項 -n 將參數限制為 1(以換行符號分隔),並為每個參數多次呼叫 host ,因此您可以執行以下操作:
cat /var/log/nginx/access.log |awk '{ print $1}'|sort| uniq -c |sort -n -r | awk '{print $2}' | xargs -n 1 host