[SOLUCIONADO] Duda con capturar IP con PHP

Iniciado por ANTRAX, Enero 19, 2013, 08:12:28 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Enero 19, 2013, 08:12:28 PM Ultima modificación: Octubre 25, 2013, 11:15:26 PM por Expermicid
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

Código: php
$ip=$_SERVER['REMOTE_ADDR'];


Existe otra forma?

Googleando un poco me tope con esto:

Código: php
<?
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..


Código: php
 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...


Código: text
    
<?
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.
Tener éxito no es aleatorio, es una variable dependiente del esfuerzo.


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Muchas gracias bro!
Sirve! :D
De nada... :)
Tener éxito no es aleatorio, es una variable dependiente del esfuerzo.