{"id":24220,"date":"2021-05-14T14:42:00","date_gmt":"2021-05-14T11:42:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24220"},"modified":"2021-10-18T02:18:43","modified_gmt":"2021-10-17T23:18:43","slug":"implementation-de-la-geolocalisation-ip-en-utilisant-free-ip2location-lite-et-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/implementation-de-la-geolocalisation-ip-en-utilisant-free-ip2location-lite-et-php\/","title":{"rendered":"Impl\u00e9mentation de la g\u00e9olocalisation IP en utilisant Free IP2Location LITE et PHP"},"content":{"rendered":"<p>Visitez n&rsquo;importe quel site Web et vous trouverez tr\u00e8s probablement une forme de localisation utilis\u00e9e. La plus courante est la diffusion d&rsquo;annonces locales, m\u00eame si le site Web peut \u00eatre \u00e9tranger. \u00c0 l&rsquo;aide de l&rsquo;adresse IP du visiteur Web, l&rsquo;exploitant du site Web peut cibler des publicit\u00e9s, des contenus pertinents ou modifier la langue du site Web en fonction de votre pays de g\u00e9olocalisation.<\/p>\n<p>Nous allons explorer comment impl\u00e9menter cette fonctionnalit\u00e9 de g\u00e9olocalisation dans votre propre site Web en utilisant PHP. La partie 1 traite de la cr\u00e9ation de la base de donn\u00e9es et de la table ainsi que de l&rsquo;importation des donn\u00e9es. La partie 2 montrera comment utiliser PHP pour interroger la base de donn\u00e9es et r\u00e9cup\u00e9rer les r\u00e9sultats.<\/p>\n<h3>Partie 1: Importation des donn\u00e9es de g\u00e9olocalisation<\/h3>\n<p>Supposons que votre site Web ex\u00e9cute un serveur Web Apache avec PHP alimentant le backend. Nous supposerons que vous utilisez MySQL car PHP fonctionne g\u00e9n\u00e9ralement avec MySQL.<\/p>\n<p>La premi\u00e8re \u00e9tape consiste \u00e0 t\u00e9l\u00e9charger le fichier de base de donn\u00e9es DB11 LITE \u00e0 partir de <a href=\"https:\/\/lite.ip2location.com\/database\/ip-country-region-city-latitude-longitude-zipcode-timezone\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a><a href=\"https:\/\/lite.ip2location.com\/database\/ip-country-region-city-latitude-longitude-zipcode-timezone\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/lite.ip2location.com\/database\/ip-country-region-city-latitude-longitude-zipcode-timezone<\/a> qui est gratuit apr\u00e8s inscription.<\/p>\n<p>Une fois que vous avez t\u00e9l\u00e9charg\u00e9 le fichier compress\u00e9, extrayez le fichier de donn\u00e9es IP2LOCATION-LITE-DB11.CSV dans un dossier appel\u00e9 <code>\/root\/ip2location_data<\/code>(ce n&rsquo;est qu&rsquo;un exemple de nom de dossier).<\/p>\n<p>Dans votre MySQL, ex\u00e9cutez ce qui suit pour cr\u00e9er la base de donn\u00e9es et la table dans laquelle nous stockerons les donn\u00e9es DB11.<\/p>\n<pre><code>CREATE DATABASE ip2location;\nUSE ip2location;\nCREATE TABLE `ip2location_db11`(\n\u00a0\u00a0\u00a0\u00a0`ip_from` INT(10) UNSIGNED,\n\u00a0\u00a0\u00a0\u00a0`ip_to` INT(10) UNSIGNED,\n\u00a0\u00a0\u00a0\u00a0`country_code` CHAR(2),\n\u00a0\u00a0\u00a0\u00a0`country_name` VARCHAR(64),\n\u00a0\u00a0\u00a0\u00a0`region_name` VARCHAR(128),\n\u00a0\u00a0\u00a0\u00a0`city_name` VARCHAR(128),\n\u00a0\u00a0\u00a0\u00a0`latitude` DOUBLE,\n\u00a0\u00a0\u00a0\u00a0`longitude` DOUBLE,\n\u00a0\u00a0\u00a0\u00a0`zip_code` VARCHAR(30),\n\u00a0\u00a0\u00a0\u00a0`time_zone` VARCHAR(8),\n\u00a0\u00a0\u00a0\u00a0INDEX `idx_ip_to` (`ip_to`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;<\/code><\/pre>\n<p>Ex\u00e9cutez maintenant ce qui suit dans MySQL pour importer les donn\u00e9es.<\/p>\n<pre><code>LOAD DATA LOCAL\n\u00a0\u00a0\u00a0\u00a0INFILE '\/root\/ip2location_data\/IP2LOCATION-LITE-DB11.CSV'\nINTO TABLE\n\u00a0\u00a0\u00a0\u00a0`ip2location_db11`\nFIELDS TERMINATED BY ','\nENCLOSED BY '\"'\nLINES TERMINATED BY 'rn'\nIGNORE 0 LINES;<\/code><\/pre>\n<h3>Partie 2: Interrogation des donn\u00e9es de g\u00e9olocalisation dans votre page Web PHP<\/h3>\n<p>Nous allons maintenant cr\u00e9er la page Web PHP pour interroger la base de donn\u00e9es et g\u00e9n\u00e9rer les donn\u00e9es de g\u00e9olocalisation pour le visiteur de la page.<\/p>\n<p>Cr\u00e9ez une page appel\u00e9e <code>test.php<\/code>et collez-y le code suivant.<\/p>\n<pre><code>&lt;?php\n$dbname = 'ip2location'; \/\/ database name\n$dbhost = 'localhost'; \/\/ database server name\n$dbuser = 'root'; \/\/ database user login\n$dbpass = '12345'; \/\/ database user password\n?&gt;\n&lt;!DOCTYPE html&gt;\n&lt;head&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;title&gt;Test page&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n&lt;?php\ntry {\n\u00a0\u00a0\u00a0\u00a0$pdo = new PDO('mysql:host='. $dbhost. ';dbname='. $dbname. ';charset=utf8', $dbuser, $dbpass);\n\u00a0\u00a0\u00a0\u00a0$pdo-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$ip = $_SERVER['REMOTE_ADDR']; \/\/ web visitor's IP address\n\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$st = $pdo-&gt;prepare('select * from `ip2location_db11` where inet_aton(:ip) &lt;= ip_to limit 1');\n\u00a0\u00a0\u00a0\u00a0$st-&gt;bindParam(':ip', $ip, PDO::PARAM_STR);\n\u00a0\u00a0\u00a0\u00a0$st-&gt;execute();\n\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$data = $st-&gt;fetchAll(PDO::FETCH_ASSOC);\n\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0if ($st-&gt;rowCount() &gt; 0) {\n\u00a0\u00a0\u00a0\u00a0\u00a0echo 'country_code: '. $data[0]['country_code']. \"&lt;br \/&gt;n\";\n\u00a0\u00a0\u00a0\u00a0\u00a0echo 'country_name: '. $data[0]['country_name']. \"&lt;br \/&gt;n\";\n\u00a0\u00a0\u00a0\u00a0\u00a0echo 'region_name: '. $data[0]['region_name']. \"&lt;br \/&gt;n\";\n\u00a0\u00a0\u00a0\u00a0\u00a0echo 'city_name: '. $data[0]['city_name']. \"&lt;br \/&gt;n\";\n\u00a0\u00a0\u00a0\u00a0\u00a0echo 'latitude: '. $data[0]['latitude']. \"&lt;br \/&gt;n\";\n\u00a0\u00a0\u00a0\u00a0\u00a0echo 'longitude: '. $data[0]['longitude']. \"&lt;br \/&gt;n\";\n\u00a0\u00a0\u00a0\u00a0\u00a0echo 'zip_code: '. $data[0]['zip_code']. \"&lt;br \/&gt;n\";\n\u00a0\u00a0\u00a0\u00a0\u00a0echo 'time_zone: '. $data[0]['time_zone']. \"&lt;br \/&gt;n\";\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0else {\n\u00a0\u00a0\u00a0\u00a0\u00a0echo 'No data found.&lt;br \/&gt;'. \"n\";\n\u00a0\u00a0\u00a0\u00a0}\n}\ncatch(PDOException $e) {\n\u00a0\u00a0\u00a0\u00a0echo 'An error has occurred.&lt;br \/&gt;'. \"n\";\n}\n?&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>Ouvrez maintenant cette page dans votre navigateur. Vous devriez voir toutes les donn\u00e9es de g\u00e9olocalisation pour votre propre adresse IP. Une fois que vous pouvez voir tous les champs de g\u00e9olocalisation renvoy\u00e9s par les donn\u00e9es IP2Location DB11 LITE, vous pouvez les utiliser dans de nombreux sc\u00e9narios. Vous pouvez filtrer le trafic, bloquer ou rediriger les utilisateurs en fonction de leur emplacement.<\/p>\n<p>Si vous avez d&rsquo;autres questions sur la mise en \u0153uvre, vous pouvez trouver d&rsquo;autres tutoriels sur <a href=\"https:\/\/blog.ip2location.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">IP2Location Blog<\/a>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Visitez n&rsquo;importe quel site Web et vous trouverez tr\u00e8s probablement une forme de localisation utilis\u00e9e. La plus courante est la diffusion d&rsquo;annonces locales pour vous&#8230;<\/p>\n","protected":false},"author":1,"featured_media":20619,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[273],"tags":[844],"class_list":["post-24220","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24220","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=24220"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24220\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/20619"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=24220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=24220"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=24220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}