sub GetSubnetAddressMaskIP
{
my $subnet = trim(<input>);
if($subnet =~ m/^(\d\d?\d?)\.(\d\d?\d?)\.(\d\d?\d?)\.(\d\d?\d?)\/([0-9]{1,2})$/ && ( $1 <= 255 && $2 <= 255 && $3 <= 255 && $4 <= 255 && $5 <= 32))
{
my $netbit=$5;
my ($subnetIP,$maskValue) = split('/',$subnet);
if($netbit <0 or $netbit >32)
{
return -1;
}
my $mask = (2 ** $netbit - 1) << (32 - $netbit);
my $netmask = join( '.', unpack( "C4", pack( "N", $mask ) ) );
if(ValidateIPAddress($netmask)==1)
{
return "$subnetIP $netmask";
}
else
{
return -1;
}
}
elsif($subnet =~ m/^(\d\d?\d?)\.(\d\d?\d?)\.(\d\d?\d?)\.(\d\d?\d?)\s+(\d\d?\d?)\.(\d\d?\d?)\.(\d\d?\d?)\.(\d\d?\d?)$/ && ( $1 <= 255 && $2 <= 255 && $3 <= 255 && $4 <= 255 && $5 <= 255 && $6 <= 255 && $7 <= 255 && $8 <= 255))
{
return $subnet;
}
else
{
return -1;
}
}
No comments:
Post a Comment