ip2long

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

ip2longConvierte una cadena que contiene una dirección (IPv4) en notación decimal con puntos en una dirección entera larga

Descripción

ip2long(string $ip): int|false

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.

Parámetros

ip

Una dirección en formato estándar.

Valores devueltos

Devuelve el entero largo, o false si ip es inválido.

Ejemplos

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

Notas

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 IP 255.255.255.255 en los sistemas de 32-bits debido al desbordamiento del valor entero.

Ver también

  • long2ip() - Convierte un entero largo (IPv4) a su notación decimal con puntos
  • sprintf() - Devuelve una string formateada