Vilket land kommer mina besökare ifrån
Om man vill ha olika webbsidor för olika länder så kan det vara smidigt att kolla var besökaren kommer ifrån och skicka dem till rätt webbsida. Det finns massor med tjänster som hjälper till med detta.
Geo tjänster
Web proxy
Jag har byggt ihop ett litet script där jag använder mig av ipstack för att kolla upp besökarna. Du måste dock skaffa en egen api-nyckel för att detta ska fungera. Du kan sedan testa scriptet med Hidemyass tjänsten.
<?php
header('Pragma: no-cache');
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
$api_key = '<api nyckel>';
$base_url = 'exempel.se';
function fetch($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$out = curl_exec($ch);
curl_close($ch);
return $out;
}
$url = 'http://api.ipstack.com/'.$_SERVER['REMOTE_ADDR'].'?access_key='.$api_key.'&fields=country_code';
$data = json_decode(fetch($url));
$europe = array('AD', 'AL', 'AT', 'AX', 'BA', 'BE', 'BG', 'BY', 'CH', 'CZ', 'DE', 'DK', 'EE', 'ES', 'FI', 'FO', 'FR', 'GB', 'GG', 'GI', 'GR', 'HR', 'HU', 'IE', 'IM', 'IS', 'IT', 'JE', 'LI', 'LT', 'LU', 'LV', 'MC', 'MD', 'ME', 'MK', 'MT', 'NL', 'NO', 'PL', 'PT', 'RO', 'RS', 'RU', 'SE', 'SI', 'SJ', 'SK', 'SM', 'UA', 'VA');
try {
if($data->country_code == 'SE') {
$redirect = 'se';
} else if (in_array($data->country_code, $europe)) {
$redirect = 'eu';
} else {
$redirect = 'us';
}
if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "googlebot"))
{
$redirect = 'se';
}
} catch(Exception $e) {
$redirect = 'us';
}
$redirect_url = 'http://'.$redirect.'.'.$base_url;
header("Location: ".$redirect_url, true, 301);
?>
Bra med detta script som referens. Bara att bygga vidare på den om det behövs 