Pour implémenter votre propre produit! Vous devez créer des tables d'adresses IP par pays ...
Ou Vous pouvez simplement utiliser le plugin suivant.
Si vous souhaitez implémenter une redirection en utilisant GeoPlugin (tiers)
Voici le fichier config.php GeoPlugin
<?php
class geoPlugin {
//the geoPlugin server
var $host = 'http://www.geoplugin.net/php.gp?ip={IP}&base_currency={CURRENCY}';
//the default base currency
var $currency = 'USD';
//initiate the geoPlugin vars
var $ip = null;
var $city = null;
var $region = null;
var $areaCode = null;
var $dmaCode = null;
var $countryCode = null;
var $countryName = null;
var $continentCode = null;
var $latitude = null;
var $longitude = null;
var $currencyCode = null;
var $currencySymbol = null;
var $currencyConverter = null;
function geoPlugin() {
}
function locate($ip = null) {
global $_SERVER;
if (is_null($ip)) {
$ip = $_SERVER['REMOTE_ADDR'];
}
$host = str_replace('{IP}', $ip, $this->host);
$host = str_replace('{CURRENCY}', $this->currency, $host);
$data = array();
$response = $this->fetch($host);
$data = unserialize($response);
//set the geoPlugin vars
$this->ip = $ip;
$this->city = $data['geoplugin_city'];
$this->region = $data['geoplugin_region'];
$this->areaCode = $data['geoplugin_areaCode'];
$this->dmaCode = $data['geoplugin_dmaCode'];
$this->countryCode = $data['geoplugin_countryCode'];
$this->countryName = $data['geoplugin_countryName'];
$this->continentCode = $data['geoplugin_continentCode'];
$this->latitude = $data['geoplugin_latitude'];
$this->longitude = $data['geoplugin_longitude'];
$this->currencyCode = $data['geoplugin_currencyCode'];
$this->currencySymbol = $data['geoplugin_currencySymbol'];
$this->currencyConverter = $data['geoplugin_currencyConverter'];
}
function fetch($host) {
if (function_exists('curl_init')) {
//use cURL to fetch data
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $host);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'geoPlugin PHP Class v1.0');
$response = curl_exec($ch);
curl_close ($ch);
} else if (ini_get('allow_url_fopen')) {
//fall back to fopen()
$response = file_get_contents($host, 'r');
} else {
trigger_error ('geoPlugin class Error: Cannot retrieve data. Either compile PHP with cURL support or enable allow_url_fopen in php.ini ', E_USER_ERROR);
return;
}
return $response;
}
function convert($amount, $float=2, $symbol=true) {
//easily convert amounts to geolocated currency.
if (!is_numeric($this->currencyConverter) || $this->currencyConverter == 0) {
trigger_error('geoPlugin class Notice: currencyConverter has no value.', E_USER_NOTICE);
return $amount;
}
if (!is_numeric($amount)) {
trigger_error ('geoPlugin class Warning: The amount passed to geoPlugin::convert is not numeric.', E_USER_WARNING);
return $amount;
}
if ($symbol === true) {
return $this->currencySymbol . round(($amount * $this->currencyConverter), $float);
} else {
return round(($amount * $this->currencyConverter), $float);
}
}
function nearby($radius=10, $limit=null) {
if (!is_numeric($this->latitude) || !is_numeric($this->longitude)) {
trigger_error ('geoPlugin class Warning: Incorrect latitude or longitude values.', E_USER_NOTICE);
return array(array());
}
$host = "http://www.geoplugin.net/extras/nearby.gp?lat=" . $this->latitude . "&long=" . $this->longitude . "&radius={$radius}";
if (is_numeric($limit))
$host .= "&limit={$limit}";
return unserialize($this->fetch($host));
}
}
?>
Et voici le code pour valider pays.
require_once('config.php'); //The above code
$geoplugin = new geoPlugin();
$geoplugin->locate();
// create a variable for the country code
$var_country_code = $geoplugin->countryCode;
// redirect based on country code:
if ($var_country_code == "OM") {
header('Location: https:www.something.com/ae');
}
else if ($var_country_code == "US") {
header('Location: https://www.something.com/en');
}
}
Si vous n'êtes pas sûr de votre code de pays Check Here
Trouvez toutes les adresses IP des pays disponibles, ajoutez-les à votre propre table et faites des demandes. –
Je sais que vous avez dit pas de tiers, c'est la 3ème partie, mais c'est simple et gratuit. http://api.wipmania.com/> ajoutez l'adresse IP ici>. –
Utilisez-vous CloudFlare pour votre site? Si tel est le cas, vous pouvez accéder à l'en-tête CloudFlare: '$ _SERVER [" HTTP_CF_IPCOUNTRY "]' Sinon, vous devez avoir une copie de IP-> Relations pays, celles-ci sont susceptibles de changer (?) IMO , si vous avez une copie de ceci, alors le moyen le plus rapide de faire correspondre serait d'utiliser une correspondance de la gamme: '192.168.1.0/24' par exemple –