(PHP 4, PHP 5)
ip2long — Convierte una cadena que contiene una dirección con puntos del Protocolo de Internet (IPv4) en una dirección apropiada
$ip_address
)La función ip2long() genera una dirección de red Internet IPv4 desde su representación en formato estándar de Internet (cadena con puntos).
ip2long() trabajará también con direcciones IP no-completas. Lea » http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm para más información.
ip_address
Una dirección en formato estándar.
Devuelve la dirección IPv4 o FALSE
si
direccion_ip
es un valor inválido.
Versión | Descripción |
---|---|
5.2.10 | Antes de esta versión, ip2long() según como devolverá un número válido incluso si el valor no es una dirección con puntos (IPv4) Internet Protocol. |
5.0.0 | Antes de esta versión, ip2long() devolvía -1 en caso de fallo. |
Ejemplo #1 Ejemplo de ip2long()
<?php
$ip = gethostbyname('www.example.com');
$salida = "Las siguientes URLs son equivalentes:<br />\n";
$salida .= 'http://www.example.com/, http://' . $ip . '/, y http://' . sprintf("%u", ip2long($ip)) . "/<br />\n";
echo $salida;
?>
Ejemplo #2 Desplegar una dirección IP
Este segundo ejemplo muestra cómo imprimir una dirección convertida con la función printf() tanto en PHP 4 como en PHP 5:
<?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"; // -1073732954
printf("%u\n", ip2long($ip)); // 3221234342
}
?>
Nota:
Ya que los tipos integer en PHP tiene signo, y muchas direcciones IP resultarán en enteros negativos en arquitecturas de 32 bits, necesita usar el especificador de formato "%u" de sprintf() o printf() para obtener la representación en forma de cadena de la dirección IP sin signo.
Nota:
ip2long() devolverá
FALSE
para la IP 255.255.255.255 en PHP 5 <= 5.0.2. Fue corregido en PHP 5.0.3 cuando devolvía -1 (al igual que en PHP 4).