2017-05-18 1 views
-4
 
207.46.13.93 - - [31/Mar/2012:19:43:19 +0530] GET /robots.txt HTTP/1.1 404 613 - Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) 
64.242.88.10 - - [07/Mar/2004:16:05:49 -0800] "GET /twiki/bin/edit/Main/Double_bounce_sender?topicparent=Main.ConfigurationVariables HTTP/1.1" 401 12846 
64.242.88.10 - - [07/Mar/2004:16:06:51 -0800] "GET /twiki/bin/rdiff/TWiki/NewUserTemplate?rev1=1.3&rev2=1.2 HTTP/1.1" 200 4523 
64.242.88.10 - - [07/Mar/2004:16:10:02 -0800] "GET /mailman/listinfo/hsdivision HTTP/1.1" 200 6291 
+0

Bitte stellen Sie eine Frage richtig ... ich sehe nur ein rohes Protokoll ... –

+0

Wie bekomme ich dieses Protokoll getrennt von jedem Feld mit Regex? – Bala

Antwort

0

es viel besser ist ein Protokoll-Parser zu verwenden, aber man könnte diese regex verwenden zu extrahieren Protokollinformationen:

(?<ip>\d+\.\d+\.\d+\.\d+)[\s-]+(?<date>\[.*\])[\s"]+(?<method>\w+)\s+(?<url>[^\s]+)\s+(?<protocol>[^\s]+)[\s"]+(?<status>\d+)\s+(?<length>\d+)([ -]+(?<useragent>.*))?

Erklärung

(?<ip>\d+\.\d+\.\d+\.\d+) Eine IP =>ip Gruppe

[\s-]+ entweder ein Leerzeichen oder ein Bindestrich, mindestens eine Zeit

(?<date>\[.*\]) [beliebiges Zeichen folgt, aber a] => erfassen Datum

[\s"]+ entweder ein Leerzeichen oder ein doppeltes Anführungszeichen, mindestens eine Zeit

(?<method>\w+) einige Wortzeichen => Erfassung Methode

\s+ mindestens ein Leerzeichen

(?<url>[^\s]+) Jedes Zeichen, sondern ein Leerzeichen, mindestens einmal => Erfassung url

\s+ mindestens ein Leerzeichen

(?<protocol>[^\s]+) Jedes Zeichen, sondern ein Leerzeichen, mindestens einmal => Erfassung Protokoll

[\s"]+ entweder ein Leerzeichen oder ein doppeltes Anführungszeichen, zumindest eine Zeit

(?<status>\d+) einige stellige Zeichen => Erfassung Status

\s+ mindestens ein Leerzeichen

(?<length>\d+) einige stellige Zeichen => erfassen Länge

([ -]+(?<useragent>.*))? Optionale Leerzeichen oder Bindestriche durch benutzer- gefolgt agent => erfassen useragent

Demo

Verwandte Themen