Forum und email

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

ip2long() trabajará también con direcciones IP no-completas. Lea » https://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm para más información.

Lista de parámetros

direccion_ip

Una dirección en formato estándar.

Valores retornados

Devuelve la dirección IPv4 o FALSE si direccion_ip es un valor inválido.

Registro de cambios

Versión Descripción
5.0.0 Antes de esta versión, ip2long() devolvía -1 en caso de fallo.

Ejemplos

Example#1 Ejemplo de ip2long()

<?php
$ip 
gethostbyname('www.example.com');
$salida "Las siguientes URLs son equivalentes:<br />\n";
$salida .= 'https://www.example.com/, https://' $ip '/, y https://' sprintf("%u"ip2long($ip)) . "/<br />\n";
echo 
$salida;
?>

Example#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 == -|| $long === FALSE) {
    echo 
'IP inválida, por favor intente de nuevo';
} else {
    echo 
tyle="color: #DD0000">'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
}
?>

Example#3 Validación de IP

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

<?php
// asegurarse de que las IP son válidas. también convierte una IP
// no-completa en un cuarteto debidamente separado con puntos, como
// se explica más 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"
?>

Notes

Note: 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.

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

Ver también