Засичане на ИП

ventsi34

Registered
Здравейте, искам да попитам как да засичам по-прецизно ИП-то на потребител? В смисъл такъв, че ако използвам функцията

Код:
$_SERVER['REMOTE_ADDR']

ако потребителя е с нереално ИП не засичам него, а рутарът му. (или за пример направих една система, в която има системка за банване на потребители по ИП, и когато пробвах да банна един компютър в училище след това от всички компютри в цялото даскало неможеше да се влиза в сайта) за това искам някак да намирам точното ип или да намирам MAC-адреса на компютъра, който е влезнал в сайта.


Като втори въпрос (за да не отварям нова тема) напишете сайтове от където мога да си зема номер за смс плащания?

И как става точно връзката между този сайт и моя (в смисъл такъв как мойта система ще разбере, че определеният потребител е изпратил смс и трябва да му бъде дадено едикакво си..)?
 
Код:
function get_real_ip()
{
     $ip = false;
     if(!empty($_SERVER['HTTP_CLIENT_IP']))
     {
          $ip = $_SERVER['HTTP_CLIENT_IP'];
     }
     if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
     {
          $ips = explode(", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
          if($ip)
          {
               array_unshift($ips, $ip);
               $ip = false;
          }
          for($i = 0; $i < count($ips); $i++)
          {
               if(!preg_match("/^(10|172\.16|192\.168)\./i", $ips[$i]))
               {
                    if(version_compare(phpversion(), "5.0.0", ">="))
                    {
                         if(ip2long($ips[$i]) != false)
                         {
                              $ip = $ips[$i];
                              break;
                         }
                    }
                    else
                    {
                         if(ip2long($ips[$i]) != - 1)
                         {
                              $ip = $ips[$i];
                              break;
                         }
                    }
               }
          }
     }
     return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}

Вариант 2


Код:
unction getRealIpAddr()
{
  if (!empty($_SERVER['HTTP_CLIENT_IP']))   //check ip from share internet
 
 
    {
      $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
]))   //to check ip is pass from proxy
    {
      $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR
'
    }
    else
    {
      $ip=$_SERVER['REMOTE_ADDR'];
    }
    return $ip;
:?:
 
@ventsi34 заповядай едно тествано кодче :wink:

Код:
<?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();
?>
 
talevtehnology каза:
@ventsi34 заповядай едно тествано кодче :wink:

Код:
<?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();
?>

Незнам аз ли не разбирам нещо или какво но пак нестава качено е тук виж www.kp.000space.com
 

Back
Горе