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

ふと思いつきで、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




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

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

Leave a Comment