[Mimedefang] RE: What to do w/ SPAM? (ip address regex)

David F. Skoll dfs at roaringpenguin.com
Mon Sep 23 15:47:01 EDT 2002


On Mon, 23 Sep 2002 perlrtst at ml1.net wrote:

> The following regexp is slower and will make your code a bit harder to 
> read, but it will only mactch valid ipv4 addresses:
> /^(0?0?\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(0?0?\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(0?0?\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(0?0?\d|[01]?\d\d|2[0-4]\d|25[0-5])$/

This is overly-paranoid.  $RelayAddr comes from Sendmail, which gets
it from the getpeername() system call.  If you can't trust that, then
you have bigger problems than a permissive regular expression. :-)

Hovever, it might be worth adding some Perl functions which check if
an address is within a network.  For example:

   if (address_in_network($RelayAddr, "192.168.128.0/25")) {
	#...
   }

could be a useful thing to do.  (Actually, I bet there's a CPAN module
out there that already does this. :-))

--
David.




More information about the MIMEDefang mailing list