PDA

Просмотр полной версии : Можно ли обойти этот фильтр?


MotherHacker
22.12.2017, 02:02
PHP:
public functionGetUserIp(){

if($this->UserIP=="Undefined"){

if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND !empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{

$client_ip= ( !empty($_SERVER['REMOTE_ADDR']) ) ?$_SERVER['REMOTE_ADDR'] : ( ( !empty($_ENV['REMOTE_ADDR']) ) ?$_ENV['REMOTE_ADDR'] :"unknown");
$entries=split('[, ]',$_SERVER['HTTP_X_FORWARDED_FOR']);

reset($entries);

while (list(,$ent ry) =each($entries))
{
$entry=trim($entry);
if (preg_ match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/",$entry,$ip_list) )
{

$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;
}

}

}

$this->UserIP=$client_ip;
return$client_ip;

}else return ( !empty($ _SERVER['REMOTE_ADDR']) ) ?$_SERVER['REMOTE_ADDR'] : ( ( !empty($_ENV['REMOTE_ADDR']) ) ?$_ENV['REMOTE_ADDR'] :"unknown");

}else return$this->UserIP;

}