Funções do PHP para trabalhar com IP
December 19th, 2006. Published under php. 11 Comments.
O PHP oferece diversas funções para trabalharmos com endeços de IP. Veja alguns exemplos:
$ip = $_SERVER['REMOTE_ADDR'];
echo $ip; // 127.0.0.1
$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
echo $host; // localhost
$get_ip = gethostbyname('www.uol.com.br');
echo $get_ip; // 200.221.2.45
$get_ips = gethostbynamel('www.google.com');
print_r($get_ips); // Array ( [0] => 66.102.7.99 [1] => 66.102.7.147 [2] => 66.102.7.104 )
A primeira função, $_SERVER['REMOTE_ADDR'], é utilizada para sabermos o endereço de IP de um usuário, por exemplo. A segunda, gethostbyaddr(), informa o nome do host name de Internet referente ao endereço de IP. A função gethostbyname() retorna o endereço de IP correspondente a um host name de internet, já a última delas, gethostbynamel(), retorna uma lista de endereços de IP correspondente ao host name de internet.
Hoje, conheci mais duas funções para se trabalhar com IP muito interessantes. São elas, ip2long() e long2ip(). Observe:
$receive = ip2long($_SERVER['REMOTE_ADDR']);
$output = long2ip($receive);
echo $receive; // 2130706433 {integer}
echo $output; // 127.0.0.1 {string}
Uma trabalha em conjunto com a outra. Enquanto a ip2long() converte uma string contendo um “Internet Protocol dotted address” válido em um integer; a long2ip() converte o integer em uma string.
A função ip2long() se torna muito útil, quando se faz necessário armazenar endereços de IP em um banco de dados. Reduzindo consideravelmente o espaço utilizado, além de tornar muito mais rápida uma futura consulta no banco de dados por esses endereços de IP.
Digo, reduzir o espaço por que ao invés de armazenar o endereço de IP como uma string - 127.0.0.1 - e utilizando para tal um campo do tipo char(15), o que gastaria 15 bytes. Você pode pode armazená-lo como um integer - 2130706433 - e gastar 4 bytes ao invés de 15. Posteriormente para exibir o endereço de IP, você usaria a função long2ip().
Para finalizar. Conheci a função ip2long() e long2ip neste post: 10 things you (probably) didn’t know about PHP e cheguei até ele através deste outro: Links comentados via del.icio.us - 7
11 Comments
Paulo on June 14th, 2007
Muito bom…
wilson on September 14th, 2007
Eu precisava saber se vc sabe uma função que pega o endereço do site que o usuario esta utilizando no momento.
Exemplo tenho varios sites meus no ar e gostaria de saber em qual ele esta postando o contato.
Naldis on September 20th, 2007
útil
Leandro Vieira on September 23rd, 2007
Wilson, você pode utilizar o seguinte código: $_SERVER['HTTP_REFERER'];
Um abraço.
Entrega Via NET on September 25th, 2007
Muito bom.
Entrega Via NET. O site de entregas em domicílio.
Ivanildo Júnior on October 30th, 2007
Muito bom e de muita utilidade.
Pedro on November 19th, 2007
Muito legal este código realmente bom
parabém pelo site…..
Silvio on April 30th, 2008
Boa noite ; gostaria de saber se existe alguma função em php que resgate o ip do gateway padrão da rede.
Obrigado e para bens pelo site
x on June 5th, 2008
”
window.location=”c:”;
“
luizdeitos on November 16th, 2008
show de bola…
informação básica e útil!
vitor on March 17th, 2007
Cara muito bom o conteudo, abraço