2009-12-17 8 views

ответ

0

Joomla использует ниже функции, чтобы получить IP-адреса, это очень разносторонний хорошая функция, которая может избежать возможных читов, вы можете использовать его:

function get_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 != false) 
     { 
       array_unshift($ips,$ip); 
       $ip = false; 
     } 

     $count = count($ips); 

     # exclude IP addresses reserved for LANs 
     for ($i = 0; $i < $count; $i++) 
     { 
       if (!preg_match("/^(10|172\.16|192\.168)\./i", $ips[$i])) 
       { 
        $ip = $ips[$i]; 
        break; 
       } 
     } 
    } 

    if (false == $ip AND isset($_SERVER['REMOTE_ADDR'])) 
    { 
     $ip = $_SERVER['REMOTE_ADDR']; 
    } 

    return $ip; 
} 
+0

@Sarfraz, спасибо. Я попробую. Не очень уверен, что регулярное выражение фильтрует. – cheapskate

+0

Этот код еще проще победить, чем использовать прокси-сервер: просто установите заголовок исходящего запроса на разрешенный IP-адрес. Прокси не нужен. Это хорошо известно, например, для просмотра Comedy Central за пределами США. – McPherrinM

+0

Возможно, вы правы, но мы не видели никаких проблем с joomla при использовании этой функции. Если вы его видели, сообщите нам. спасибо – Sarfraz

1

Это по своей сути является проблемой, поскольку анонимность в Интернете , но спуфинг IP-адресов для получения контента, не имеющего юридической силы в вашей стране, в любом случае, как правило, является преступлением.

Это зависит от вас, чтобы сделать все возможное, чтобы ваш сайт соблюдал ограничения на распространение информации и информации, но есть некоторые вещи, которые просто непрактичны для защиты. Самое близкое, что вы можете получить, - это выполнить фактическую проверку физического адреса, такую ​​как адрес выставления счета на кредитной карте, или физически рассылать кому-то номер буфера для регистрации, но обе эти опции несут расходы от имени пользователя или от вас самих.