2015-09-30 1 views
-1

Я использую GeoPlugin для проверки того, с какими посетителями страны просматриваются, и перенаправлением их на основе результата. На данный момент у меня есть код на каждой странице, поэтому каждая страница делает тот же запрос. Можно ли выполнить поиск по одному IP-адресу и кэшировать результат на некоторое время, чтобы уменьшить количество запросов к GeoPlugin. Мой код до сих пор:Кэш IP от GeoPlugin Результат PHP

<?php 

$meta = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$_SERVER['REMOTE_ADDR'])); 

if (($meta['geoplugin_countryCode']=='CN' || 
    $meta['geoplugin_countryCode']=='IR' 
    )&&(  
    $meta['geoplugin_request']!=='1.2.3.4' 
    ))  
{ 
    header('Location: http://google.com', true); 
    die(); 
} 

?> 

Заранее благодарен!

+0

Да, это возможно. Храните его где-нибудь и сначала найдите там. –

+0

$ _SESSION может сэкономить ваш день, сделать поиск один раз, проверить каждую страницу, если они есть, если не выполнить поиск – VeNoMiS

ответ

0

Мой окончательный код выглядит следующим образом, используя сеанс, как было предложено выше:

<?php 

session_start(); 

if(isset($_SESSION['geoplugin'])) 

{ 
    $meta=$_SESSION['geoplugin']; 
    echo "Using a stored session"; 
} 

else 

{ 
    $meta = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$_SERVER['REMOTE_ADDR'])); 

    $_SESSION['geoplugin'] = $meta; 

    echo "Using a new session"; 
} 

if (
(
    $meta['geoplugin_countryCode']=='CN' || 
    $meta['geoplugin_countryCode']=='HK' || 
    $meta['geoplugin_countryCode']=='TW' || 
    $meta['geoplugin_countryCode']=='AP' || 
    $meta['geoplugin_countryCode']=='ID' || 
    $meta['geoplugin_countryCode']=='KP' || 
    $meta['geoplugin_countryCode']=='KR' || 
    $meta['geoplugin_countryCode']=='MN' || 
    $meta['geoplugin_countryCode']=='MY' || 
    $meta['geoplugin_countryCode']=='PG' || 
    $meta['geoplugin_countryCode']=='PH' || 
    $meta['geoplugin_countryCode']=='VN' || 
    $meta['geoplugin_countryCode']=='IN' || 
    $meta['geoplugin_countryCode']=='BD' || 
    $meta['geoplugin_countryCode']=='RK' || 
    $meta['geoplugin_countryCode']=='RU' || 
    $meta['geoplugin_countryCode']=='PL' || 
    $meta['geoplugin_countryCode']=='BG' 
) 

&& 
(  
    $meta['geoplugin_request']!=='1.2.3.4' 
) 
) 

{ 

header('Location: https://mywebsite.co.uk/denied', true); 
} 

$status = session_status(); 

if($status == PHP_SESSION_DISABLED) 
{ 
echo "Session is Disabled"; 
} 
else if($status == PHP_SESSION_NONE) 
{ 
echo "Session Enabled but No Session values Created"; 
} 
else 
{ 
echo "Session Enabled and Session values Created"; 
} 

?> 
Смежные вопросы