Beware when processing values that are invalid, you may get values that are different based on the OS. For instance:
$ip = long2ip(pow(2,32)+1024);
On windows you get 255.255.255.255. On linux it's 0.0.4.0.
So it seems it would be important to make sure the long you're converting is in the correct range.
long2ip
(PHP 4, PHP 5)
long2ip — Bir (IPv4) sayısal ağ adresini noktalı gösterimi içeren bir dizgeye dönüştürür
Açıklama
string long2ip
( string $özel_adres
)
long2ip() işlevi özel adres gösteriminden standart noktalı gösterimle (aaa.bbb.ccc.ddd) bir ağ adresi oluşturur.
Değiştirgeler
- özel_adres
-
Özel ağ adresi gösterimi.
Dönen Değerler
IP adresini bir dizge olarak döndürür.
Ayrıca Bakınız
- ip2long() - Noktalı IP adresi gösterimini içeren bir dizgeyi sayısal adrese dönüştürür
long2ip
php dot net at davidstockton dot com
04-Sep-2008 05:28
04-Sep-2008 05:28
Gabriel Malca
17-Mar-2006 01:01
17-Mar-2006 01:01
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 < 0 || $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;
}
}
?>
randomize at randomizer dot com
28-Jan-2006 05:51
28-Jan-2006 05:51
Random ip address! (4294967295 is 255.255.255.255)
long2ip(rand(0, "4294967295"))
flobee
13-Feb-2005 10:50
13-Feb-2005 10:50
when importing ip-ranges to a mysql database using an INT(10) field - NOTE: that you will get problems when using intval() function!
copied from "cleong" : 02-Oct-2001 02:21
intval() handles overflow differently depending on the type of the argument.
<?php
// intval('10000000000') = 2147483647
// intval(1e10) = 1410065408
?>
Tom Crosley
16-Feb-2003 09:13
16-Feb-2003 09:13
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
