J
Joe Henderson
All,
When i can to send the dec value of an ip add to a sub it doesn't work..
Is there any othe way i can do this w/o substring it..?
Or does ne1 have a better way...
###############
my $ip = "10.10.1.1";
my @octet = split(/\./, $ip); #Like to remove this garbage.., Just send the
whole string..
my $dec = &decimal(@octet);
my $dec1 = substr($dec, 0, 5); #Like to remove this garbage..
my $dec2 = substr($dec, 5, 5); #Like to remove this garbage..
my $ip = &ip($dec1, $dec2);
sub decimal
{
my @octet = @_;
my $oct1 = $octet[0];
my $oct2 = $octet[1];
my $oct3 = $octet[2];
my $oct4 = $octet[3];
my $dec1 = $oct1 * (256**3);
my $dec2 = $oct2 * (256**2);
my $dec3 = $oct3 * 256;
my $dec4 = $oct4;
my $decimal = $dec1 + $dec2 + $dec3 + $dec4;
return $decimal;
}
sub ip
{
my @dec = @_;
my $dec1 = $dec[0];
my $dec2 = $dec[1];
my $decimal = "$dec1$dec2"; #join back together
$decimal =~s/^\s+//; #strip all leading whitespace
$decimal =~s/\s+$//; #strip all trailing whitespace
$oct1 = ($decimal / 256**3);
@num = split(/\./, $oct1);
$oct1 = $num[0];
$dec1 = ($oct1 * 256**3);
$decimal = $decimal - $dec1;
if($decimal >= 256**2)
{
$oct2 = ($decimal / 256**2);
@num = split(/\./, $oct2);
$oct2 = $num[0];
$dec2 = ($oct2 * 256**2);
$decimal = $decimal - $dec2;
}
if($decimal >= 256)
{
$oct3 = ($decimal / 256);
@num = split(/\./, $oct3);
$oct3 = $num[0];
$dec3 = $oct3 * 256;
$decimal = $decimal - $dec3;
}
$oct4 = $decimal;
$oct4 = $decimal;
if($oct1 < 1) { $oct1 = 0; }
if($oct2 < 1) { $oct2 = 0; }
if($oct3 < 1) { $oct3 = 0; }
if($oct4 < 1) { $oct4 = 0; }
$ip = "$oct1.$oct2.$oct3.$oct4";
return $ip;
}
###############
TIA,
Joe
When i can to send the dec value of an ip add to a sub it doesn't work..
Is there any othe way i can do this w/o substring it..?
Or does ne1 have a better way...
###############
my $ip = "10.10.1.1";
my @octet = split(/\./, $ip); #Like to remove this garbage.., Just send the
whole string..
my $dec = &decimal(@octet);
my $dec1 = substr($dec, 0, 5); #Like to remove this garbage..
my $dec2 = substr($dec, 5, 5); #Like to remove this garbage..
my $ip = &ip($dec1, $dec2);
sub decimal
{
my @octet = @_;
my $oct1 = $octet[0];
my $oct2 = $octet[1];
my $oct3 = $octet[2];
my $oct4 = $octet[3];
my $dec1 = $oct1 * (256**3);
my $dec2 = $oct2 * (256**2);
my $dec3 = $oct3 * 256;
my $dec4 = $oct4;
my $decimal = $dec1 + $dec2 + $dec3 + $dec4;
return $decimal;
}
sub ip
{
my @dec = @_;
my $dec1 = $dec[0];
my $dec2 = $dec[1];
my $decimal = "$dec1$dec2"; #join back together
$decimal =~s/^\s+//; #strip all leading whitespace
$decimal =~s/\s+$//; #strip all trailing whitespace
$oct1 = ($decimal / 256**3);
@num = split(/\./, $oct1);
$oct1 = $num[0];
$dec1 = ($oct1 * 256**3);
$decimal = $decimal - $dec1;
if($decimal >= 256**2)
{
$oct2 = ($decimal / 256**2);
@num = split(/\./, $oct2);
$oct2 = $num[0];
$dec2 = ($oct2 * 256**2);
$decimal = $decimal - $dec2;
}
if($decimal >= 256)
{
$oct3 = ($decimal / 256);
@num = split(/\./, $oct3);
$oct3 = $num[0];
$dec3 = $oct3 * 256;
$decimal = $decimal - $dec3;
}
$oct4 = $decimal;
$oct4 = $decimal;
if($oct1 < 1) { $oct1 = 0; }
if($oct2 < 1) { $oct2 = 0; }
if($oct3 < 1) { $oct3 = 0; }
if($oct4 < 1) { $oct4 = 0; }
$ip = "$oct1.$oct2.$oct3.$oct4";
return $ip;
}
###############
TIA,
Joe