trop de spam
trop de virus
trop de lignes ADSL se connectant sur mon MTA
souvent facile à identifier grâce au résolution inverse DNS
64-80-231-201.fibertel.com.ar
host-67-84-230-24.midco.net
host-89-229-2-176.torun.mm.pl
host-213-213-233-44.brutele.be
ppp-58.10.219.243.revip2.asianet.co.th
68-67-200-36.atlaga.adelphia.net
\d+-\d+-\d+-\d+\.fibertel\.com\.ar
host-\d+-\d+-\d+-\d+\.midco\.net
host-\d+-\d+-\d+-\d+\.torun\.mm\.pl
host-\d+-\d+-\d+-\d+\.brutele\.be
ppp-\d+\.\d+\.\d+\.\d+\.revip\d+\.asianet\.co\.th
\d+-\d+-\d+-\d+\.atlaga\.adelphia\.net
Postfix peut se paramétrer directement à partir de ces regexps
via la librarie PCRE
mais les appliquent séquentiellement
problème de performance
une seule expression serait préférable
(?: host-\d+-\d+-\d+-\d+\. (?: torun\.mm\.pl |brutele\.be |midco\.net ) |\d+-\d+-\d+-\d+\. (?: atlaga\.adelphia\.net |fibertel\.com\.ar ) |ppp-\d+\.\d+\.\d+\.\d+\.revip\d+\.asianet\.co\.th )
4096 expressions régulières
136 467 octets
assemblé, 90 549 octets
coût d'ajouter une expression additionelle...
... quasi nul
vu dans les tests
sad | salad | spread
j'ai rêvé : s(pre|al)?ad
il l'a fait : s(?:(?:al)?|pre)ad
remarque : s(pre|al|)ad ferait l'affaire aussi
permet de d'assembler de multiples expressions
et recupérer celle qui a declenché le match
indexer un hash de coderefs (dispatch table)
un peu lourd en 5.8, à cause d'un bug dans le moteur regexp
vient d'être corrigé dans bleadperl
be by me my devrait produire '[bm][ey]'
mais cela produit '(?:b[ey]|m[ey)'
c'est correct, mais pas génial
_lex() est lent, vraiment lent (a+b*c? => a+, b*, c?)
_fastlex() est un peu mieux (utilise \G), mais...
... ne marche pas en 5.6, et j'ai introduit un bug
Introduire de curlies.
(?: host(?:-\d+){4}\. (?: torun\.mm\.pl |brutele\.be |midco\.net ) |\d+(?:-\d+){3}\. (?: atlaga\.adelphia\.net |fibertel\.com\.ar ) |ppp-(?:\d+\.){4}revip\d+\.asianet\.co\.th )
Merci