ip2long

(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

Descripción

int ip2long ( string direccion_ip )

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). Si direccion_ip es inválida, entonces se devuelve -1. Note que -1 no evalúa a FALSE en PHP.

Nota: A partir de PHP 5.0.0, ip2long() devuelve FALSE cuando ip_address es inválido.

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;
?>

Nota: Ya que el tipo entero de PHP tiene signo, y muchas direcciones IP resultarán en enteros negativos, necesita usar el especificador de formato "%u" de sprintf() o printf() para obtener la representación de cadena de la dirección IP sin signo.

Este segundo ejemplo muestra cómo imprimir una dirección convertida con la función printf() tanto en PHP 4 como en PHP 5:

Ejemplo 2. Desplegar una dirección IP (PHP 4)

<?php
$ip   
= gethostbyname('www.example.com');
$long = ip2long($ip);

if (
$long == -1 || $long === FALSE) {
    echo
'IP inv&aacute;lida, por favor intente de nuevo';
} else {
    echo
$ip   . "\n";           // 192.0.34.166
    
echo $long . "\n";           // -1073732954
    
printf("%u\n", ip2long($ip)); // 3221234342
}
?>

ip2long() no debería usarse como la única forma de validación de IP. Combínela con long2ip():

Ejemplo 3. Validación de IP

<?php
// asegurarse de que las IP son validas. tambien convierte una IP
// no-completa en un cuarteto debidamente separado con puntos, como
// se explica mas adelante.
$ip = long2ip(ip2long("127.0.0.1")); // "127.0.0.1"
$ip = long2ip(ip2long("10.0.0")); // "10.0.0.0"
$ip = long2ip(ip2long("10.0.256")); // "10.0.1.0"
?>

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.

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).

Vea también long2ip() y sprintf().

Hosting by: hurra.com
Generated: 2007-01-26 18:00:44