ip2long

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

ip2longConverte uma string contendo um endereço com pontos do protocolo da Internet (IPv4) em um número inteiro longo

Descrição

ip2long(string $ip): int|false

A função ip2long() gera uma representação inteira longa do endereço de rede da Internet IPv4 a partir de sua representação no formato padrão da Internet (string com pontos).

ip2long() também funcionará com endereços IP incompletos. Leia » http://ps-2.kev009.com/wisclibrary/aix52/usr/share/man/info/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm para mais informações.

Parâmetros

ip

Um endereço no formato padrão.

Valor Retornado

Retorna o número inteiro longo ou false se ip for inválido.

Exemplos

Example #1 Exemplo de ip2long()

<?php
$ip = gethostbyname('www.example.com');
$out = "Os seguintes URLs são equivalentes:<br />\n";
$out .= 'http://www.example.com/, http://' . $ip . '/, and http://' . sprintf("%u", ip2long($ip)) . "/<br />\n";
echo $out;
?>

Example #2 Exibindo um endereço IP

Este segundo exemplo mostra como exibir um endereço convertido com a função printf():

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

if ($long == -1 || $long === FALSE) {
    echo 'IP inválido, tente novamente';
} else {
    echo $ip   . "\n";            // 192.0.34.166
    echo $long . "\n";            // 3221234342 (-1073732954 em sistemas de 32 bits, devido ao estouro de número inteiro)
    printf("%u\n", ip2long($ip)); // 3221234342
}
?>

Notas

Note:

Como o tipo int do PHP é com sinal e muitos endereços IP resultarão em números inteiros negativos em arquiteturas de 32 bits, é necessário usar o formatador "%u" de sprintf() ou printf() para obter a representação em string do endereço IP sem sinal.

Note:

ip2long() retornará -1 para o IP 255.255.255.255 em sistemas de 32 bits devido ao estouro do valor inteiro.

Veja Também

  • long2ip() - Converte um endereço inteiro longo em uma string no formato padrão com pontos da Internet (IPv4)
  • sprintf() - Retona uma string formatada