Domänennamen aus IP-Adressen aus access.log abrufen

Domänennamen aus IP-Adressen aus access.log abrufen

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

verwandte Informationen