Grepping-Protokolle für IP-Adressen
Bin ich ganz schlecht "basic?" unix-Befehle und-diese Frage stellt mein wissen noch mehr zu testen. Was ich tun möchte, ist grep alle IP-Adressen aus einem Protokoll (z.B. Zugang.log von apache) und zählen Sie, wie oft Sie auftreten. Kann ich das mit einem Befehl oder muss ich ein Skript schreiben?
Haben Sie einen Blick auf meine Antwort in unix stackexchange: unix.stackexchange.com/a/389565/249079
InformationsquelleAutor Paul Peelen | 2011-04-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Benötigen Sie eine kurze pipeline mindestens.
Dem drucken wird jede IP (nur ipv4), sortiert mit dem Präfix Zählung.
Getestet habe ich es mit apache2 access.log (es ist konfigurierbar, so dass Sie brauchen werden, um zu überprüfen), und es funktionierte für mich. Es übernimmt die IP-Adresse ist das erste, was in jeder Zeile.
Der sed sammelt die IP-Adressen (eigentlich sieht es aus für 4 Sätze von Ziffern, mit Punkten dazwischen), und ersetzt die gesamte Zeile.
-e t
weiterhin die nächste Zeile, wenn es gelungen ist, auf eine substitution, die-e d
löscht die Zeile (wenn es keine IP-Adresse auf Sie).sort
sortiert.. 🙂 Unduniq -c
zählt Instanzen von aufeinander folgenden, identischen Zeilen (die, da wir haben sortiert, entspricht der Gesamtzahl).InformationsquelleAutor falstro
können Sie Folgendes tun (wo datafile der name der log-Datei)
edit: verpasst den Teil über das zählen-Adresse, nun
InformationsquelleAutor Stewart Dale
Keine Antworten präsentiert hier für mich gearbeitet, so ist hier ein zu arbeiten:
es nutzt grep zu isolieren alle ips. dann sortiert, zählt und sortiert das Ergebnis wieder.
InformationsquelleAutor David Nathan
egrep '[[:digit:]]{1,3}(.[[:Ziffer:]]{1,3}){3}' |awk '{print $1}'|sort|uniq -c
InformationsquelleAutor Snowwolf
Folgenden ist ein Skript, das ich schrieb vor einigen Jahren. Es greps Adressen von apache access logs. Ich habe es gerade ausprobiert unter Ubuntu 11.10 (oneiric) 3.0.0-32-generic #51-Ubuntu SMP Thu Mar 21 15:51:26 UTC 2013 i686 i686 i386 GNU/Linux
Es funktioniert einwandfrei. Verwenden Sie Gvim oder Vim verwenden, um Lesen Sie die resultierende Datei, welche aufgerufen wird unique_visits, die Liste die einzigartige ips in einer Spalte. Der Schlüssel dazu ist in den Zeilen mit grep. Diese Ausdrücke funktionieren, extrahieren Sie die ip-Adresse zahlen. Nur IPV4. Möglicherweise müssen Sie gehen durch und update browser version zahlen. Ein weiteres ähnliches Skript, das ich schrieb für ein Slackware-system ist hier:
http://www.perpetualpc.net/srtd_bkmrk.html
InformationsquelleAutor Dave Tarsi
Mit sed:
Können Sie suchen und finden, regex verfügbar für ip-Adresse auf Inernet und ersetzen Sie es mit
<regex_for_ip_address>
. z.B. Aus den Antworten auf eine ähnliche Frage auf stackoverflowInformationsquelleAutor sahaj
InformationsquelleAutor cint