Получение доменных имен с IP-адресов из журнала access.log [закрыто]

На самом деле я хочу видеть людей с какого домена заходят на мой сайт. Я хочу сгенерировать доменные имена из IP-адресов в файле Apache access.log.

Как я могу это сделать? Имеется около 54 файлов журналов. Я объединяю все файлы в один.

Это сервер Unix. Мне нужно использовать анализатор файлов журнала apache. Поэтому я использую webalizer, но он не разрешает IP-адреса в доменные имена.

-1
задан 4 September 2013 в 13:12
2 ответа

Я давно написал для этого простой сценарий. Он не идеален и имеет несколько режимов отказа, но достаточно хорош для случайного осмотра. Я никогда не удосужился улучшить его, но, возможно, кто-то другой это сделает.

#!/bin/bash

while read junk
do
        echo -n "$junk "
        dig +short -x $junk
done

Используйте его как таковое:

cut -f 1 -d ' ' access.log | sort | uniq | ips.sh
3
ответ дан 5 December 2019 в 19:29

Если вы используете 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
-1
ответ дан 5 December 2019 в 19:29

Теги

Похожие вопросы