En realidad, quiero ver personas desde qué dominio acceden a mi sitio web. Quiero generar los nombres de dominio a partir de direcciones IP en el archivo Apache access.log.
¿Cómo puedo hacer esto? Hay alrededor de 54 archivos de registro. Concateno todos los archivos en uno.
Este es un servidor Unix. Tengo que usar un analizador de archivos de registro de Apache. Entonces uso webalizer pero no resuelve IP en nombres de dominio.
Respuesta1
Escribí un guión sencillo para esto hace mucho tiempo. No es perfecto y tiene algunos modos de falla, pero funciona lo suficientemente bien como para una inspección informal. Nunca me he molestado en mejorarlo, pero quizás alguien más lo haga.
#!/bin/bash
while read junk
do
echo -n "$junk "
dig +short -x $junk
done
Úselo como tal:
cut -f 1 -d ' ' access.log | sort | uniq | ips.sh
Respuesta2
Si está utilizando Windows, puede analizar el archivo de registro concatenado con un script y realizar "nslookup" en 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