Hi, You're right. removing begin and end chars was a bad idea. I just tried in a perl routine, and all is fine... So I'll have to find why an 194.X.X.X ip got stuck as a ILLEGAL_IP ...
Thanks for your help Eric Rodriguez On Fri, May 29, 2009 at 18:35, Theo Van Dinter <felic...@apache.org> wrote: > None of the IPs you listed will match. > Have you tried simply running a loop in Perl to see what the results are? > > Also, "negation ~" ? What do you mean? "=~" is not a negation (that > would be !~). > Also also, the "^" and "$" chars are important. If you remove them, > you change the RE. > > > On Fri, May 29, 2009 at 7:59 AM, Eric Rodriguez <thewa...@gmail.com> > wrote: > > Hi, > > > > I removed the negation ~ , the begin ^ and end $ charaters from the > > original source: > > > > sub check_for_illegal_ip { > > my ($self, $pms) = @_; > > > > foreach my $rcvd ( @{$pms->{relays_untrusted}} ) { > > > > # (note this might miss some hits if the Received.pm skips any > invalid > > IPs) > > foreach my $check ( $rcvd->{ip}, $rcvd->{by} ) { > > return 1 if ($check =~ /^ > > > > > (?:[01257]|(?!127.0.0.)127|22[3-9]|2[3-9]\d|[12]\d{3,}|[3-9]\d\d+)\.\d+\.\d+\.\d+ > > > > $/x); > > } > > } > > return 0; > > } > > > > Here are my results: > > Test Target String matches() replaceFirst() replaceAll() lookingAt() > find() > > group(0) > > 1 127.0.0.1 No 12 12 No Yes 7.0.0.1 > > 2 192.168.1.1 No 19 19 No Yes 2.168.1.1 > > 3 87.248.121.75 No 8 8 No Yes 7.248.121.75 > > 4 > > 193.1.1.1 No 193.1.1.1 193.1.1.1 No No > > 5 > > 194.1.1.1 No 194.1.1.1 194.1.1.1 No No > > > > If I understand correctly the first 3 tests are valid IP, but not the > > 193.1.1.1 and 194.1.1.1 ?? > > > > Eric Rodriguez > > > > > > On Fri, May 29, 2009 at 13:53, Matt Kettler <mkettler...@verizon.net> > wrote: > >> > >> Eric Rodriguez wrote: > >> > Hi, > >> > > >> > I'm having trouble with the check invalid_ip subroutine in the > >> > RelayEval.pm. > >> > See > >> > > >> > > http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayEval.pm?view=log&r1=451385&pathrev=451385 > >> > > >> > < > http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/RelayEval.pm?view=log&r1=451385&pathrev=451385 > > > >> > > >> > After a couple test, it seems that 193.X.X.X and 194.X.X.X ip's are > >> > not "valid" with respect to the regexp. > >> > Is this a bug? or am I wrong about the test? > >> > > >> > I used http://www.fileformat.info/tool/regex.htm with > >> > RegExp: > >> > > >> > > (?:[01257]|(?!127.0.0.)127|22[3-9]|2[3-9]\d|[12]\d{3,}|[3-9]\d\d+)\.\d+\.\d+\.\d+ > >> > Tests: > >> > 127.0.0.1 > >> > 192.168.1.1 > >> > 87.248.121.75 > >> > 193.1.1.1 > >> > 194.1.1.1 > >> > > >> > > >> > Could someone explain me which ip are "valid" according to this test ? > >> > Thanks > >> > > >> > Eric Rodriguez > >> Using the above tool I get results telling me that 193.1.1.1 and > >> 194.1.1.1 do NOT match, and therefore are valid IPs. > >> > >> Test Target String matches() replaceFirst() replaceAll() > >> lookingAt() find() group(0) > >> 1 193.1.1.1 *No* 193.1.1.1 193.1.1.1 No > No > >> 2 194.1.1.1 *No* 194.1.1.1 194.1.1.1 No > No > >> > >> > >> > >> In fact, NONE of your test strings match the regex. But 127.1.1.1, > >> correctly, does. > >> > >> > > > > >