На самом деле я хочу видеть, с какого домена люди заходят на мой сайт. Я хочу сгенерировать доменные имена из IP-адресов в файле Apache access.log.
Как это сделать? Есть около 54 файлов журнала. Я объединяю все файлы в один.
Это сервер 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, вы можете проанализировать объединенный файл журнала с помощью скрипта, выполнив «nslookup» для каждого IP-адреса.
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