PHP Conference Kansai 2025

long2ip

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

long2ipConverte um endereço inteiro longo em uma string no formato padrão com pontos da Internet (IPv4)

Descrição

long2ip(int $ip): string

A função long2ip() gera um endereço de Internet em formato com pontos (ou seja: aaa.bbb.ccc.ddd) a partir da representação de inteiro longo.

Parâmetros

ip

Uma representação de endereço adequada em número inteiro longo.

Valor Retornado

Retorna o endereço IP da Internet como uma string.

Registro de Alterações

Versão Descrição
8.4.0 O tipo do retorno foi alterado de string|false para string.
7.1.0 O tipo do parâmetro ip foi alterado de string para int.

Notas

Nota:

Em arquiteturas de 32 bits, converter representações inteiras de endereços IP de string para int não fornecerá resultados corretos para números que excedam PHP_INT_MAX.

Veja Também

  • ip2long() - Converte uma string contendo um endereço com pontos do protocolo da Internet (IPv4) em um número inteiro longo

adicione uma nota

Notas Enviadas por Usuários (em inglês) 2 notes

up
9
Gabriel Malca
19 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