keima's caprice diary

気付いたことをメモのように綴ります。なるべく義務っぽくならないように気まぐれに記録します。

Linux nginx アクセスログからDNS逆引きscript

ふと思いつきで、

nginxのアクセスログからアクセス元をDNS逆引きしたくなり、

とっさにシェルスクリプトを書いた。 

 

■環境

OS:CentOS release 6.8 (Final)

bashGNU bash, version 4.1.2(1)-release (i386-redhat-linux-gnu)

 

■nginxのaccess.logパターン

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" "-"

# 行頭にアクセス元IPアドレスがセットされる。 

 

#!/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

 

これ、活用する日はあるのだろうか。。。

もっとスマートな方法があればご指摘頂ければと思う。