Black Rabbit
Новичок
Проблема с определением ip адреса
Нужна функция для определения реального ip адреса. Пишу
function show_ip()
{
$lan_ip= array('10.0.0.', '192.168.', '127.0.0.', '172.16.0.');
if($ip=getenv("http_client_ip"));
elseif($ip=getenv("http_x_forwarded_for"));
else $ip=getenv("remote_addr");
if($ip=="unknown") $ip=getenv("remote_addr");
else
{
for($i=0;$i<sizeof($lan_ip);$i++)
{
if(strpos($ip,$lan_ip[$i]))
$ip=getenv("remote_addr");
}
}
return $ip;
}
То есть, если человек сидит за прокси и http_x_forwarded_for возвращает айпи в локальной сети, необходимо брать remote_addr
В некоторых случаях все равно возвращаются адреса вида 192.168.0.21
С чем это может быть связано и как устранить проблему??
Заранее спасибо
Нужна функция для определения реального ip адреса. Пишу
function show_ip()
{
$lan_ip= array('10.0.0.', '192.168.', '127.0.0.', '172.16.0.');
if($ip=getenv("http_client_ip"));
elseif($ip=getenv("http_x_forwarded_for"));
else $ip=getenv("remote_addr");
if($ip=="unknown") $ip=getenv("remote_addr");
else
{
for($i=0;$i<sizeof($lan_ip);$i++)
{
if(strpos($ip,$lan_ip[$i]))
$ip=getenv("remote_addr");
}
}
return $ip;
}
То есть, если человек сидит за прокси и http_x_forwarded_for возвращает айпи в локальной сети, необходимо брать remote_addr
В некоторых случаях все равно возвращаются адреса вида 192.168.0.21
С чем это может быть связано и как устранить проблему??
Заранее спасибо