Взимане на IP адрес

puzzelbrain1

Registered
Как да взема истинският IP адрес на човек посещаващ сайта ми дори когато е с рутер и маска? Вче пробвах с:
Код:
$userIP = $_SERVER['REMOTE_ADDR'];
Код:
if(array_key_exists("HTTP_CLIENT_IP",$_SERVER)
&& !empty($_SERVER["HTTP_CLIENT_IP"])) {
    return $_SERVER["HTTP_CLIENT_IP"];
}
else if(array_key_exists("X_FORWARDED_FOR",$_SERVER)
&& !empty($_SERVER["X_FORWARDED_FOR"])) {
    return $_SERVER["X_FORWARDED_FOR"];
}
else {
    return  $_SERVER["REMOTE_ADDR"];
}
Код:
function getRealIpAddr()
{
    if (!empty($_SERVER['HTTP_CLIENT_IP']))   //check ip from share internet
    {
      $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))   //to check ip is pass from proxy
    {
      $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
      $ip=$_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}
всички ми изкарват маската на рутера
 
Ами то през какво IP си отваряш файла ? REMOTE_ADDR ще изкара IP-то независимо дали стои зад рутер.
 
IP-то от рутера няма как да го вземеш. Трябва да влезнеш в рутера и да проследиш по мак адрес кое е локалното IP на компютъра.

А ако искаш да разбереш IPто не зависимо от това дали влиза през прокси(крие IP_то си , предполагам ) можеш да използваш това :
PHP:
<?php
	function get_real_ip()
    {

		if (isset($_SERVER["HTTP_CLIENT_IP"]))
        {
			return $_SERVER["HTTP_CLIENT_IP"];
		}
		elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
        {
			return $_SERVER["HTTP_X_FORWARDED_FOR"];
		}
		elseif (isset($_SERVER["HTTP_X_FORWARDED"]))
        {
			return $_SERVER["HTTP_X_FORWARDED"];
		}
		elseif (isset($_SERVER["HTTP_FORWARDED_FOR"]))
        {
			return $_SERVER["HTTP_FORWARDED_FOR"];
		}
		elseif (isset($_SERVER["HTTP_FORWARDED"]))
        {
			return $_SERVER["HTTP_FORWARDED"];
		}
		else
        {
			return $_SERVER["REMOTE_ADDR"];
		}

	}
    echo get_real_ip();
?>
http://www.vision.to/get-a-real-ip-vs-proxy.php
 

Горе