{"id":24351,"date":"2021-05-14T14:49:00","date_gmt":"2021-05-14T11:49:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24351"},"modified":"2021-10-18T03:15:48","modified_gmt":"2021-10-18T00:15:48","slug":"implementazione-della-geolocalizzazione-ip-utilizzando-ip2location-lite-e-php-gratuiti","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/it\/implementazione-della-geolocalizzazione-ip-utilizzando-ip2location-lite-e-php-gratuiti\/","title":{"rendered":"Implementazione della geolocalizzazione IP utilizzando IP2Location LITE e PHP gratuiti"},"content":{"rendered":"<p>Visita qualsiasi sito Web e molto probabilmente troverai una qualche forma di localizzazione in uso. Il pi\u00f9 comune \u00e8 la visualizzazione di annunci locali anche se il sito web potrebbe essere straniero. Utilizzando l&#8217;indirizzo IP del visitatore Web, l&#8217;operatore del sito Web pu\u00f2 indirizzare annunci, contenuti pertinenti o modificare la lingua del sito Web in base al paese di geolocalizzazione.<\/p>\n<p>Esploreremo come implementare questa funzionalit\u00e0 di geolocalizzazione nel tuo sito Web utilizzando PHP. La parte 1 si occupa della creazione del database e della tabella e dell&#8217;importazione dei dati. La parte 2 mostrer\u00e0 come utilizzare PHP per interrogare il database e recuperare i risultati.<\/p>\n<h3>Parte 1: Importazione dei dati di geolocalizzazione<\/h3>\n<p>Supponiamo che il tuo sito Web esegua un server Web Apache con PHP che alimenta il backend. Supponiamo che tu stia usando MySQL poich\u00e9 PHP di solito funziona con MySQL.<\/p>\n<p>Il primo passo \u00e8 scaricare il file del database DB11 LITE da <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> che \u00e8 gratuito dopo la registrazione.<\/p>\n<p>Una volta scaricato il file zippato, estrai il file di dati IP2LOCATION-LITE-DB11.CSV in una cartella chiamata <code>\/root\/ip2location_data<\/code>(questo \u00e8 solo un nome di cartella di esempio).<\/p>\n<p>Nel tuo MySQL, esegui quanto segue per creare il database e la tabella in cui memorizzeremo i dati 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>Ora esegui quanto segue in MySQL per importare i dati.<\/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>Parte 2: Interrogazione dei dati di geolocalizzazione nella tua pagina web PHP<\/h3>\n<p>Ora creeremo la pagina Web PHP per interrogare il database e restituire i dati di geolocalizzazione per il visitatore della pagina.<\/p>\n<p>Crea una pagina chiamata <code>test.php<\/code>e incollaci il seguente codice.<\/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>Ora apri quella pagina nel tuo browser. Dovresti vedere tutti i dati di geolocalizzazione per il tuo indirizzo IP. Una volta che puoi vedere tutti i campi di geolocalizzazione restituiti dai dati IP2Location DB11 LITE, puoi usarli in molti scenari. Puoi filtrare il traffico, bloccare o reindirizzare gli utenti in base alla loro posizione.<\/p>\n<p>Se hai altre domande sull&#8217;implementazione, puoi trovare altri tutorial nel <a href=\"https:\/\/blog.ip2location.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">blog IP2Location<\/a>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Visita qualsiasi sito Web e molto probabilmente troverai una qualche forma di localizzazione in uso. Il pi\u00f9 comune \u00e8 la visualizzazione di annunci locali per te&#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":[276],"tags":[846],"class_list":["post-24351","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-7","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/24351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/comments?post=24351"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/24351\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media\/20619"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media?parent=24351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/categories?post=24351"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/tags?post=24351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}