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

Exemplo #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 . '/, e http://' . sprintf("%u", ip2long($ip)) . "/<br />\n";
echo
$out;
?>

Exemplo #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

Nota:

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.

Nota:

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