ふと思いつきで、nginxのアクセスログからアクセス元をDNS逆引きしたくなり、とっさにシェルスクリプトを書いた。
動作環境
- CentOS 6.8
- GNU bash, version 4.1.2(1)-release (i386-redhat-linux-gnu)
ログ形式
164.52.6.150 - - [25/Jan/2018:02:02:22 +0900] "GET / HTTP/1.1" 200 26588 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0" "-"
スクリプト
#!/bin/bash
awk '{print $1}' $1 | sort -n | uniq | while read line
do
dig -x $line | while read lime
do
if ${lime} =~ PTR ; then
if ! ${lime} =~ ^\; ; then
echo ${lime} >> ./tmpawk
fi
fi
done
done
awk '{print $5}' tmpawk
rm -rf tmpawk
これ、活用する日はあるのだろうか。。。
もっとスマートな方法があればご指摘頂ければと思う。