¿Cómo puede ser?
Os adjunto la clase que uso para coger la ip y convertirla en hexadecimal.
Código PHP:
class ip
{
// Devuelve una cadena de 8 caracteres con la ip codificada en hexadecimal
function codificar_ip($ip='') // as string
{
$aux=array();
$ipcod="";
if(empty($ip))
$ip=$this->real_ip();
$aux=explode(".", $ip);
for($i=0;$i<sizeof($aux);$i++)
$ipcod.=str_pad(dechex($aux[$i]), 2, "0", STR_PAD_LEFT);
return $ipcod;
}
// Restaura la ip a partir de la cadena hexadecimal $ipcod
function decodificar_ip($ipcod) // as string
{
$ip="";
for($i=0;$i<4;$i++)
$ip.=hexdec(substr($ipcod,$i*2,2)).".";
$ip=substr($ip,0,strlen($ip)-1);
return $ip;
}
// Devuelve la ip real del usuario, sin proxys
function real_ip() // as string
{
if ($for = getenv('HTTP_X_FORWARDED_FOR')){
$afor = explode(",", $for);
return trim($afor[0]);
}else
return getenv('REMOTE_ADDR');
}
}