Eigentlich möchte ich sehen, von welcher Domäne aus die Leute auf meine Website zugreifen. Ich möchte die Domänennamen aus IP-Adressen in der Apache-Datei access.log generieren.
Wie kann ich das machen? Es gibt etwa 54 Protokolldateien. Ich füge alle Dateien zu einer zusammen.
Dies ist ein Unix-Server. Ich muss einen Apache-Logdateianalysator verwenden. Also verwende ich Webalizer, aber es löst IPs nicht in Domänennamen auf.
Antwort1
Ich habe vor langer Zeit ein einfaches Skript dafür geschrieben. Es ist nicht ganz perfekt und hat einige Fehlermodi, aber für eine gelegentliche Überprüfung ist es gut genug. Ich habe mich nie darum gekümmert, es zu verbessern, aber vielleicht tut es jemand anderes.
#!/bin/bash
while read junk
do
echo -n "$junk "
dig +short -x $junk
done
Verwenden Sie es folgendermaßen:
cut -f 1 -d ' ' access.log | sort | uniq | ips.sh
Antwort2
Wenn Sie Windows verwenden, können Sie die verknüpfte Protokolldatei mit einem Skript analysieren, indem Sie für jede IP „nslookup“ ausführen.
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