PHP 8.4.1 Released!

long2ip

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

long2ipConvertit une adresse entier long (IPv4) en sa notation décimale à point

Description

long2ip(int $ip): string

La fonction long2ip() génère une adresse Internet en notation décimale à point (format aaa.bbb.ccc.ddd) à partir de sa représentation entier long.

Liste de paramètres

ip

Une propre représentation d'une adresse sous forme entier long

Valeurs de retour

Retourne l'adresse IP Internet, sous la forme d'une chaîne de caractères.

Historique

Version Description
8.4.0 Le type de retour est passé de string|false à string.
7.1.0 La type du paramètre ip a été modifié de string en int.

Notes

Note:

Sur les architectures 32-bits, transtyper la représention d'adresses IP de string à int ne donnera pas de résultats correct pour les nombres qui dépassent PHP_INT_MAX.

Voir aussi

  • ip2long() - Convertit une chaîne contenant une adresse (IPv4) en notation décimale à point en une adresse entier long

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