Hola a todos,
Tengo una duda con respecto a capturar la ip con PHP. En realidad se como se hace, pero tengo un caso particular, en el que no me captura la ip del cliente, sino que siempre captura la ip del servidor. En tonces al guardar, siempre me muestra la ip del servidor en lugar de la del cliente
$ip=$_SERVER['REMOTE_ADDR'];
Existe otra forma?
Googleando un poco me tope con esto:
<?
if ($_SERVER) {
if ( $_SERVER[HTTP_X_FORWARDED_FOR] ) {
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} elseif ( $_SERVER["HTTP_CLIENT_IP"] ) {
$realip = $_SERVER["HTTP_CLIENT_IP"];
} else {
$realip = $_SERVER["REMOTE_ADDR"];
}
} else {
if ( getenv( "HTTP_X_FORWARDED_FOR" ) ) {
$realip = getenv( "HTTP_X_FORWARDED_FOR" );
} elseif ( getenv( "HTTP_CLIENT_IP" ) ) {
$realip = getenv( "HTTP_CLIENT_IP" );
} else {
$realip = getenv( "REMOTE_ADDR" );
}
}
?>
Pero en ambos casos solo me captura la del servidor y no la del cliente que envia el formulario.
A alguien le ha pasado o sabe como solucionarlo?
Saludos!
Mmm donde estas ejecutando el script? por ejemplo en el server de undercode y accedes desde tu pc y te sigue mostrando la IP del servidor y no la tuya?
Por otro lado, que haces despues con la variable $ip? la imprimis asi tal como viene?
Si y si.. el script esta en el server y me guarda la ip del server y no la mia..
if( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] )){
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
echo $ip;
}else if( isset( $_SERVER ['HTTP_VIA'] )){
$ip = $_SERVER['HTTP_VIA'];
echo $ip;
}else if( isset( $_SERVER ['REMOTE_ADDR'] )){
$ip = $_SERVER['REMOTE_ADDR'];
echo $ip;
}else{
$ip = null;
echo "No se pudo obtener IP";
}
Proba eso, lo edite asi rapido si tira error decime en que linea y sino que resultado devuelve..
Lo mismo! sigue dando la ip del server...
<?
function getRealIP() {
if (!empty($_SERVER['HTTP_CLIENT_IP']))
return $_SERVER['HTTP_CLIENT_IP'];
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
return $_SERVER['HTTP_X_FORWARDED_FOR'];
return $_SERVER['REMOTE_ADDR'];
}
?>
Saludos.
Muchas gracias bro!
Sirve! :D
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
Muchas gracias bro!
Sirve! :D
De nada... :)