Helper n ose asuste que nos es nada complicado..
Creo que mi solucion es mas facil que usando sesiones teniendo en cuenta que usted tiene pocos conocimientos del tema,
Haga partecita por partecita y le vamos ayudando a corregir o solucionar dudas, intentelo y vera que no necesita ser el duro en PHP para lograr lo que quiere hacer... y de paso aprende
En eslomas.com encotnre esta funciona que obtiene la Ip real, no la e probado pero debe funcionar.... Hay le adelanto trabajo
Código PHP:
function getRealIP()
{
if( $_SERVER['HTTP_X_FORWARDED_FOR'] != '' )
{
$client_ip =
( !empty($_SERVER['REMOTE_ADDR']) ) ?
$_SERVER['REMOTE_ADDR']
:
( ( !empty($_ENV['REMOTE_ADDR']) ) ?
$_ENV['REMOTE_ADDR']
:
"unknown" );
// los proxys van añadiendo al final de esta cabecera
// las direcciones ip que van "ocultando". Para localizar la ip real
// del usuario se comienza a mirar por el principio hasta encontrar
// una dirección ip que no sea del rango privado. En caso de no
// encontrarse ninguna se toma como valor el REMOTE_ADDR
$entries = split('[, ]', $_SERVER['HTTP_X_FORWARDED_FOR']);
reset($entries);
while (list(, $entry) = each($entries))
{
$entry = trim($entry);
if ( preg_match("/^([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)/", $entry, $ip_list) )
{
// http://www.faqs.org/rfcs/rfc1918.html
$private_ip = array(
'/^0\\./',
'/^127\\.0\\.0\\.1/',
'/^192\\.168\\..*/',
'/^172\\.((1[6-9])|(2[0-9])|(3[0-1]))\\..*/',
'/^10\\..*/');
$found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);
if ($client_ip != $found_ip)
{
$client_ip = $found_ip;
break;
}
}
}
}
else
{
$client_ip =
( !empty($_SERVER['REMOTE_ADDR']) ) ?
$_SERVER['REMOTE_ADDR']
:
( ( !empty($_ENV['REMOTE_ADDR']) ) ?
$_ENV['REMOTE_ADDR']
:
"unknown" );
}
return $client_ip;
}
echo getRealIP();