# RE: interger to I P address

The harder way:

Decimal: 1089055123
Hex (dashes inserted at octals): 40-E9-A9-93 Decimal (of

each octet):

The Python way

>>> import socket, struct
>>> socket.inet_ntoa(struct.pack('>l', 1089055123))
'64.233.169.147'

The Perl way:

sub ntoa
{
my \$one = shift;
my \$four = \$one & 0xff;
\$one >>= 8;
my \$three = \$one & 0xff;
\$one >>= 8;
my \$two = \$one & 0xff;
\$one >>= 8;
return "\$one.\$two.\$three.\$four";
}

#or in one line, like ipcalc does:
sub ntoa_in_one_line { join(".", unpack("CCCC", pack("N", \$_[0]))); }

print ntoa(1089055123) . "\n";
print ntoa_in_one_line(1089055123) . "\n";

The PHP way:
function convertIntegerToIpv4(\$integer)
{
\$max_value = pow(2,32); //4,294,967,296
\$bug_fix = 0;
settype(\$integer, float);

if(\$integer > 2147483647) \$bug_fix = 16777216;

if(is_numeric(\$integer))
{
if (\$integer >= \$max_value || \$integer < 0)
{
return ('Not a valid IPv4 integer');
}
\$ip = (sprintf("%u.%u.%u.%u",
\$integer / 16777216,
((\$integer % 16777216) + \$bug_fix) / 65536,
((\$integer % 65536) + \$bug_fix / 256) / 256,
(\$integer % 256) + \$bug_fix / 256 / 256
)
);
return(\$ip);
}
else {
return('');
}
}

The PHP way:
echo long2ip('1089055123');

Boyd, Benjamin R wrote: