Função ip2long

ip2long ( $ip_address ) - converte uma seqüência de caracteres ASCII contendo um endereço de Internet válido usando a notação de ponto (IP) em um integer (IP longo).
Um exemplo de notação de ponto é 120.121.5.123.

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 por esses endereços de IP.

A redução de espaço se dá por que ao invés de armazenar o endereço de IP como uma string – 121.122.123.124 – 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().

O IP longo é muito utilizado em banco de dados por sites de estatísticas para verificar a origem dos visitantes.

Abaixo temos algumas linhas de um banco de dados que armazena tais informações.

cálculo de ip longo:

IP = aaa.bbb.ccc.ddd

IP longo = (aaa * 256³) + (bbb * 256²) + (ccc * 256¹) + ddd