実際、どのドメインから自分の Web サイトにアクセスしたかを確認したいのです。Apache access.log ファイル内の IP アドレスからドメイン名を生成したいのです。
どうすればいいでしょうか? ログ ファイルは 54 個ほどあります。すべてのファイルを 1 つに連結します。
これは Unix サーバーです。Apache ログ ファイル アナライザーを使用する必要があります。そのため、Webalizer を使用していますが、IP をドメイン名に解決できません。
答え1
かなり前に、このための簡単なスクリプトを書きました。完璧とは言えず、いくつかの障害モードがありますが、簡単に検査するには十分です。私はこれを改良しようとは思っていませんが、おそらく他の誰かがそうするでしょう。
#!/bin/bash
while read junk
do
echo -n "$junk "
dig +short -x $junk
done
次のように使用します。
cut -f 1 -d ' ' access.log | sort | uniq | ips.sh
答え2
Windows を使用している場合は、各 IP に対して「nslookup」を実行し、連結されたログ ファイルをスクリプトで解析できます。
if wscript.arguments.count > 0
then
logname = wscript.arguments(0)
set fs = wscript.createobject("scripting.filesystemobject")
set readstream = fs.opentextfile(logname, 1, 0, 0)
while not readstream.atendofstream str = readstream.readline ' parse str with RegEx object to get IP
set shell = wscript.createobject("wscript.shell")
shell.run "nslookup " & ip & " > temp.txt", 0
set lookupstream = fs.opentextfile("temp.txt", 1, 0, 0)
lookup = lookupstream.readall ' parse lookup info
lookupstream.close
wend
readstream.close