my $ip = '1.2.3.4';
my $block1 = '1.2.3.0/27';
if(checkip($ip, $block1)) {
print STDOUT "$ip is in $block1\n";
}
else {
print STDOUT "$ip is not in $block1\n";
}
sub checkip() {
my $ip = shift;
my $block = shift;
@ip1 = split(/\./, $ip);
$ip1 = $ip1[0] * 2**24 + $ip1[1] * 2**16 + $ip1[2] * 2**8 + $ip1[3];
my @temp = split(/\//, $block);
$ip2 = $temp[0];
my $netmask = $temp[1];
@ip2 = split(/\./, $ip2);
$ip2 = $ip2[0] * 2**24 + $ip2[1] * 2**16 + $ip2[2] * 2**8 + $ip2[3];
if( $ip1 >> (32-$netmask) == $ip2 >> (32-$netmask) ) {
return 1;
}
return 0;
}
-
Archives
- April 2017
- April 2016
- July 2015
- November 2014
- October 2014
- June 2014
- May 2014
- January 2014
- December 2013
- October 2013
- April 2013
- April 2012
- October 2011
- July 2011
- April 2011
- March 2011
- February 2011
- May 2010
- April 2010
- January 2010
- October 2009
- June 2009
- May 2009
- April 2009
- February 2009
- October 2008
- September 2008
- August 2008
- July 2008
- January 2008
- December 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
-
Meta