Na verdade, quero ver pessoas de qual domínio acessam meu site. Quero gerar os nomes de domínio a partir de endereços IP no arquivo access.log do Apache.
Como posso fazer isso? Existem cerca de 54 arquivos de log. Eu concateno todos os arquivos em um.
Este é um servidor Unix. Eu tenho que usar um analisador de arquivos de log do Apache. Então eu uso o webalizer, mas ele não resolve IP para nomes de domínio.
Responder1
Eu escrevi um script simples para isso há muito tempo. Não é nada perfeito e tem alguns modos de falha, mas funciona bem o suficiente para uma inspeção casual. Nunca me preocupei em melhorá-lo, mas talvez alguém o faça.
#!/bin/bash
while read junk
do
echo -n "$junk "
dig +short -x $junk
done
Use-o como tal:
cut -f 1 -d ' ' access.log | sort | uniq | ips.sh
Responder2
Se estiver usando Windows, você pode analisar o arquivo de log concatenado com um script, executando "nslookup" em cada 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