(PHP 4, PHP 5, PHP 7, PHP 8)
ip2long — Convierte una cadena que contiene una dirección (IPv4) en notación decimal con puntos en una dirección entera larga
La función ip2long() genera una representación en entero largo de una dirección IPv4 desde su formato estándar (notación decimal con puntos)
ip2long() también funciona con direcciones IP incompletas. Leer » http://ps-2.kev009.com/wisclibrary/aix52/usr/share/man/info/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm para más información.
ip
Una dirección en formato estándar.
Devuelve el entero largo, o false
si ip
es inválido.
Ejemplo #1 Ejemplo con ip2long()
<?php
$ip = gethostbyname('www.example.com');
$out = "Las URL siguientes son equivalentes :<br />\n";
$out .= 'http://www.example.com/, http://' . $ip . '/, and http://' . sprintf("%u", ip2long($ip)) . "/<br />\n";
echo $out;
?>
Ejemplo #2 Mostrar una dirección IP
Este segundo ejemplo muestra cómo mostrar una dirección convertida a través de la función printf():
<?php
$ip = gethostbyname('www.example.com');
$long = ip2long($ip);
if ($long == -1 || $long === FALSE) {
echo 'IP inválida, por favor intente de nuevo';
} else {
echo $ip . "\n"; // 192.0.34.166
echo $long . "\n"; // 3221234342 (-1073732954 en los sistemas de 32-bit, debido al desbordamiento de entero)
printf("%u\n", ip2long($ip)); // 3221234342
}
?>
Nota:
Como los entier PHP son firmados y muchas direcciones IP resultarán en enteros negativos en las arquitecturas de 32-bits, se debe utilizar el patrón "%u" de la función sprintf() o de la función printf() para obtener la representación en forma de chaîne de caractères de una dirección IP no firmada.
Nota:
ip2long() devolverá
-1
para la IP255.255.255.255
en los sistemas de 32-bits debido al desbordamiento del valor entero.