For Programmers: Free Programming Magazines  


Home > Archive > PERL Modules > September 2004 > Help with Net::IP::Match and mod_perl









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author Help with Net::IP::Match and mod_perl
Allen Wooden

2004-09-13, 3:56 pm

I'm having trouble getting this to work
under mod_perl 1.29/Apache 1.3.31

#!/usr/local/bin/perl -w
use strict;
use warnings;

use CGI qw(:standard :html3 -no_xhtml -newstyle_urls );

use Net::IP::Match;

my ($search, $q);
$q = new CGI;
$search = $q->param('search');

if ( __MATCH_IP($search, qw{ 10.0.0.0/8 169.254.0.0/16 172.16.0.0/12
192.168.0.0/16 223.0.0.0/8 224.0.0.0/3 127.0.0.0/8 }))
{
print $q->header;
print $q->start_html;
print $q->blockquote("Looks like it works");
print $q->end_html;
}


running this from command line works fine, however when run via
http://host/cgi-bin/test.pl?search=10.1.1.1 gives an internal server
error:

PerlRun: `Undefined subroutine
& Apache::ROOT::cgi_2dbin::test_2epl::__MA
TCH_IP called at /usr/loc
al/apache/cgi-bin//test.pl line 14.\n'



Allen Wooden

2004-09-14, 8:57 am

On Wed, 08 Sep 2004 19:13:31 GMT, Allen Wooden
<allen.wooden@educate.invalid> wrote:

>I'm having trouble getting this to work
>under mod_perl 1.29/Apache 1.3.31
>


I found an alternative module Net::Subnets which works as expected.

I am still curious as to why the orginal didn't work so if anyone
wishes to enlighten me I'd appreciate it.

Allen

Brian McCauley

2004-09-17, 8:56 pm



Allen Wooden wrote:
> I'm having trouble getting this to work
> under mod_perl 1.29/Apache 1.3.31
>
> #!/usr/local/bin/perl -w
> use strict;
> use warnings;
>
> use CGI qw(:standard :html3 -no_xhtml -newstyle_urls );
>
> use Net::IP::Match;
>
> my ($search, $q);
> $q = new CGI;
> $search = $q->param('search');
>
> if ( __MATCH_IP($search, qw{ 10.0.0.0/8 169.254.0.0/16 172.16.0.0/12
> 192.168.0.0/16 223.0.0.0/8 224.0.0.0/3 127.0.0.0/8 }))
> {
> print $q->header;
> print $q->start_html;
> print $q->blockquote("Looks like it works");
> print $q->end_html;
> }
>
>
> running this from command line works fine, however when run via
> http://host/cgi-bin/test.pl?search=10.1.1.1 gives an internal server
> error:
>
> PerlRun: `Undefined subroutine
> & Apache::ROOT::cgi_2dbin::test_2epl::__MA
TCH_IP called at /usr/loc
> al/apache/cgi-bin//test.pl line 14.\n'


It looks to me like source filters and eval() don't mix well.

(Apache::Registry uses eval to compile test.pl as a module.)

(Net::IP::Match uses source filters)

Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com