PHP 8.1.31 Released!

long2ip

(PHP 4, PHP 5, PHP 7, PHP 8)

long2ipBir uzun tamsayılı IPv4 adresini noktalı gösterimi içeren bir dizgeye dönüştürür

Açıklama

long2ip(int $ip): string

long2ip() işlevi uzun tamsayı gösteriminden standart noktalı gösterimle (aaa.bbb.ccc.ddd) bir IP adresi oluşturur.

Bağımsız Değişkenler

ip

Uzun tamsayı gösterimli IP adresi.

Dönen Değerler

IP adresini bir dizge olarak, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: Açıklama
7.1.0 ip bağımsız değişkeninini türü string iken int yapıldı.

Notlar

Bilginize:

32 bitlik sistemlerde, IP adresine uygulanan string türünden int türüne dönüşüm PHP_INT_MAX'ı aşan sayılarda doğru sonuç vermez.

Ayrıca Bakınız

  • ip2long() - Noktalı IP adresi gösterimini içeren bir dizgeyi uzun tamsayıya dönüştürür

add a note

User Contributed Notes 2 notes

up
9
Gabriel Malca
18 years ago
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;
}
}
?>
up
5
steve at computurn dot com
6 years ago
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);
}
To Top