package My::parser::localcheck; use strict; use warnings; sub new { my $class = shift; my $self = {}; bless ($self, $class); return $self; } sub islocal { my $self = shift; my $host = shift; #SSL Labs - 64.41.200.0/24 my @local_nets = ('127\.','10\.','192\.168\.','172\.((1[6-9])|(2[0-9])|(3[0-1]))\.','64\.41\.200\.', '213.236.200.10','18.200.56.156'); # array of regexes matching networks considered local and to be ignored my $local = 0; foreach my $test(@local_nets) { $local = 1 if($host =~ m/^$test/); last if $local; } return $local; } return 1;