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 <[email protected]> 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 <[email protected]> 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.
>>
>>
>
>

Reply via email to