Foros del Web » Programando para Internet » PHP »

problema raro con ip2long()

Estas en el tema de problema raro con ip2long() en el foro de PHP en Foros del Web. Hola, tengo un problema muy extraño.. Estoy usando la funcion ip2long para cambiar una IP a entero.. pero cuando lo pruebo en servidores diferentes me ...
  #1 (permalink)  
Antiguo 06/08/2009, 00:11
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 3 meses
Puntos: 11
Pregunta problema raro con ip2long()

Hola, tengo un problema muy extraño..

Estoy usando la funcion ip2long para cambiar una IP a entero.. pero cuando lo pruebo en servidores diferentes me sale error...

por ejemplo

$IP="190.40.197.48";
echo ip2long($IP);


En el Servidor de CDMON sale 3190342960, y me funciona correctamente ya que ese numerolo uso en una consulta a BD...

Peeeroooo.. en el VPS que tengo con liquidweb sale -1104624336 y no funciona con la consulta a la BD, pos no existe...

Que esta pasando?


Incluso he creado una funcion para convertir la IP a entero

function strtoint($str) {
$ip = 0;
$tetr = explode(".", $str);
for ($i = 0; $i < 4; $i++) {
$ip = $ip << 8;
$ip += $tetr[$i];
};
return $ip;
}


Y el mismo problema.. esta todo raro...
  #2 (permalink)  
Antiguo 06/08/2009, 00:57
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 3 meses
Puntos: 11
Respuesta: problema raro con ip2long()

Ya tengo la solucion.. lo que pasa esque en PHP5 esa funcion no funciona bien... y weno esto lo arregla...

Cita:
function myip2long($ip) {
if (is_numeric($ip)) {
return sprintf("%u", floatval($ip));
} else {
return sprintf("%u", floatval(ip2long($ip)));
}
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:35.