Ich habe mehrere Protokolldateien, die eine Reihe von IP-Adressen enthalten. Ich würde gerne in der Lage sein, die Daten durch ein Programm zu leiten, das mit IP-Adressen übereinstimmt und diese auflöst.
IE cat / var / log / somelogfile | Wirt
das würde eine Linie wie drehen
10:45 Zugriff bis 10.13.13.10
in
10:45 Zugriff über myhostname.intranet
Meiner Meinung nach gibt es eine Möglichkeit, dies mit einer Kombination aus Sed und Host zu tun, aber ich habe keine Ahnung, wie ich das tun soll. Ich weiß, dass ich ein einfaches Skript schreiben könnte, das dies tun würde, aber ich würde lieber eingebaute Tools verwenden können, wenn dies möglich ist. Irgendwelche Vorschläge?
command-line
sed
pipe
hostname
Daniel
quelle
quelle
Antworten:
Hier ist eine schnelle und schmutzige Lösung für dieses Problem in Python. Es macht Caching (einschließlich negatives Caching), aber kein Threading und ist nicht das schnellste, was Sie gesehen haben. Wenn Sie es als so etwas speichern
rdns
, können Sie es so nennen:Wenn Sie es ausführen, werden die IP-Adressen mit ihren PTR-Einträgen versehen:
Und hier ist die Quelle:
Bitte beachten Sie: Dies ist nicht ganz das, wonach Sie suchen (mit 'Standardwerkzeugen'). Aber es hilft Ihnen wahrscheinlich mehr als ein Hack, der jede IP-Adresse jedes Mal auflöst, wenn sie auftritt. Mit ein paar Zeilen mehr können Sie sogar festlegen, dass die Ergebnisse dauerhaft zwischengespeichert werden, was bei wiederholten Aufrufen hilfreich wäre.
quelle
Ich würde verwenden
jdresolve -n -a
Verpackt für Debian usw. auch erhältlich bei:
https://github.com/jdrowell/jdresolve
Ich benutze es seit über einem Jahrzehnt, um Apache-Protokolle, Tintenfisch-Protokolle und alles andere mit vielen IP-Adressen aufzulösen, die aufgelöst werden müssen. Es funktioniert gut, zuverlässig und schnell und kann Suchvorgänge aus früheren Läufen zwischenspeichern.
quelle
Ein Bash-Skript, in das Sie Ihre Protokolldatei und Pipe einfügen können.
Ausgabe sieht aus wie:
quelle
Ein kurzer Perl:
quelle
Wenn das Protokollformat konsistent dasselbe anzeigt, wie Sie es oben gezeigt haben, können Sie dies wirklich schmutzig machen
echo 10:45 accessed by 10.13.13.10|awk '{print $4}'|nslookup
quelle