long2ip

(PHP 4, PHP 5)

long2ipConverts an (IPv4) Internet network address into a string in Internet standard dotted format

Description

string long2ip ( string $proper_address )

The function long2ip() generates an Internet address in dotted format (i.e.: aaa.bbb.ccc.ddd) from the proper address representation.

Parameters

proper_address

A proper address representation.

Return Values

Returns the Internet IP address as a string.

See Also

  • ip2long() - Converts a string containing an (IPv4) Internet Protocol dotted address into a proper address

Коментарии

Автор:
I wanted to be able to pass an IP address in a URL always as an unsigned int.  I then converted it back as shown below:

$ip_addr = "192.168.100.25";  // example IP address that converts to neg #

$s32int = ip2long($ip_addr);

$us32str = sprintf("%u",$s32int);               // convert to unsigned string

// display orig IP address, signed 32 bit version, unsigned 32 bit ver, 
// finally converted back to IP addr

printf("%s ,%d, %s, %s", $ip_addr, $s32int, $us32str, 
         long2ip(-(4294967296-$us32str)));

// tested on Linux/Apache PHP 4.1.2
2003-02-16 15:13:35
http://php5.kiev.ua/manual/ru/function.long2ip.html
Автор:
If the function doesn't exist:

<?
   
if (!function_exists("long2ip")) {
        function 
long2ip($long) {
           
// Valid range: 0.0.0.0 -> 255.255.255.255
           
if ($long || $long 4294967295) return false;
           
$ip "";
            for (
$i=3;$i>=0;$i--) {
               
$ip .= (int)($long pow(256,$i));
               
$long -= (int)($long pow(256,$i))*pow(256,$i);
                if (
$i>0$ip .= ".";
            }
            return 
$ip;
        }
    }
?>
2006-03-17 07:01:35
http://php5.kiev.ua/manual/ru/function.long2ip.html
Автор:
If you're running a 32 bit machine you can get wrong IPs. To prevent from this just cast to float e.g. 

<?php
long2Ip32bit
($ip){
   return 
long2ip((float)$ip);
}
?>
2011-08-05 12:38:39
http://php5.kiev.ua/manual/ru/function.long2ip.html
Use these two functions to convert from and to numbers compatible to MySQLs INET_ATON and INET_NTOA
<?php
   
function convertIpToString($ip)
    {
       
$long 4294967295 - ($ip 1);
        return 
long2ip(-$long);
    }
    function 
convertIpToLong($ip)
    {
        return 
sprintf("%u"ip2long($ip));
    }
?>
2012-01-25 12:34:24
http://php5.kiev.ua/manual/ru/function.long2ip.html
For a 32bit safe long2ip, which can accept string or signed integer input, try:

  function safelong2ip($long) {
    $binStr = sprintf("%032s", decbin((float)$long));
    if (strlen($binStr) != 32) {
      throw new Exception("Invalid IPv4 subnet!");
    }

    $ipArr = [];
    for ($i = 0; $i < 4; ++$i) {
      $ipArr[] = bindec(substr($binStr, $i*8, 8));
    }

    return implode('.', $ipArr);
  }
2018-10-30 15:38:41
http://php5.kiev.ua/manual/ru/function.long2ip.html
Автор:
an Anonymous wrote several years ago that you should cast the parameter to float to make sure that you get the right result on 32-bit machines. That probably never worked.

But the idea is on a good track: to convert a bitstring into an ip, use

$ip = long2ip((int)bindec($bits));

This works on 32- and 64-bit machines.
2021-04-02 18:53:41
http://php5.kiev.ua/manual/ru/function.long2ip.html

    Поддержать сайт на родительском проекте КГБ