Plop all,
Je fais actuellement mon programme "parseur de log".
Il ne me reste plus qu'à optimiser mes expressions régulières.
Deux formats d'expression : Apache et IIS
Voici un exemple de log pour ces deux formats :
Apache
IIS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 192.90.90.90 - - [10/Aug/2009:19:45:42 +0100] "GET /index.php HTTP/1.1" 100 200 "http://www.developpez.com" "Mozilla/4.0 (compatible; MSIE 7.0; Windows)"
J'ai actuellement un problèmes sur mes expressions que voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 2008-01-05 10:10:10 192.90.90.91 - GET /index.php 200 133 - Mozilla /4.0 (compatible; MSIE 7.0; Windows) http://www.developpez.com/
Premier problème, je crois qu'il doit y avoir une erreur dans la ligne apache et je ne vois pas ou.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 my $APACHE = q{(\S+)\s+\S+\s+\S+\s+\[(\d+)/(\D+)/(\d+):\d+:\d+:\d+\s+\+\d+\]\s+\"(\S+)\s+(\S+)\s+\"\s+(\S+)\s+(\S+)\s+\"(.*)\"\s+\"(.*)\"}; my $IIS = q{(\d+)-(\d+)-(\d+)\s+\d+:\d+:\d+\s+(\S+)\s+\S+\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+\S+\s+(\S+)\s+(\S+)};
Au niveau de le ligne IIS, je ne vois pas comment récupérer Mozilla /4.0 (compatible; MSIE 7.0; Windows) et http://www.developpez.com/ sachant qu'il n'y a pas de quote ici et qu'il y a plusieurs espaces dans le user agent (Mozilla 4.0 etc...).
Avez-vous une idée comment procéder ?
Je pense que je vais devoir me servir de ^http mais cela aurait pu être www.
Merci à vous![]()
Partager