{"id":24481,"date":"2021-05-14T14:41:00","date_gmt":"2021-05-14T11:41:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24481"},"modified":"2021-10-17T19:13:34","modified_gmt":"2021-10-17T16:13:34","slug":"ip-geolokatsiooni-rakendamine-tasuta-ip2location-lite-ja-php-abil","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/et\/ip-geolokatsiooni-rakendamine-tasuta-ip2location-lite-ja-php-abil\/","title":{"rendered":"IP-geolokatsiooni rakendamine tasuta IP2Location LITE ja PHP abil"},"content":{"rendered":"<p>K\u00fclastage m\u00f5nda veebisaiti ja leiate, et t\u00f5en\u00e4oliselt kasutatakse m\u00f5nda lokaliseerimisvormi. K\u00f5ige tavalisem on teile kohalike reklaamide kuvamine, kuigi veebisait v\u00f5ib olla v\u00f5\u00f5ras. Veebik\u00fclastaja IP-aadressi abil saab veebisaidi operaator sihtida asjakohaseid reklaame, sisu v\u00f5i muuta veebisaidi keelt teie geograafilise asukoha riigi j\u00e4rgi.<\/p>\n<p>Uurime, kuidas seda geograafilise asukoha funktsiooni oma veebisaidile PHP abil juurutada. 1 osas k\u00e4sitletakse nii andmebaasi ja tabeli loomist kui ka andmete importimist. 2 osa n\u00e4itab, kuidas kasutada PHP-d andmebaasi p\u00e4ringute tegemiseks ja tulemuste hankimiseks.<\/p>\n<h3>1 osa: geolokatsiooniandmete importimine<\/h3>\n<p>Oletame, et teie veebisaidil t\u00f6\u00f6tab Apache veebiserver, kus PHP toetab taustaprogrammi. Eeldame, et kasutate MySQL-i, kuna PHP t\u00f6\u00f6tab tavaliselt MySQL-iga.<\/p>\n<p>Esimene samm on andmebaasi DB11 LITE faili allalaadimine <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> mis on p\u00e4rast registreerumist tasuta.<\/p>\n<p>Kui olete ZIP-faili alla laadinud, eraldage andmefail IP2LOCATION-LITE-DB11.CSV kausta nimega <code>\/root\/ip2location_data<\/code>(see on ainult kausta nime n\u00e4ide).<\/p>\n<p>K\u00e4ivitage oma MySQL-is andmebaasi ja tabeli loomiseks DB11 andmete salvestamine j\u00e4rgmiselt.<\/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>Andmete importimiseks k\u00e4ivitage n\u00fc\u00fcd MySQL-is j\u00e4rgmine.<\/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>2 osa: geograafilise asukoha andmete k\u00fcsimine teie PHP veebisaidil<\/h3>\n<p>Loome n\u00fc\u00fcd andmebaasi p\u00e4ringute tegemiseks ja lehek\u00fclastaja geograafilise asukoha andmete v\u00e4ljastamiseks PHP veebilehe.<\/p>\n<p>Looge nimega leht <code>test.php<\/code>ja kleepige sinna j\u00e4rgmine kood.<\/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>N\u00fc\u00fcd avage see leht oma brauseris. Peaksite n\u00e4gema k\u00f5iki oma IP-aadressi geograafilise asukoha andmeid. Kui n\u00e4ete k\u00f5iki IP2Location DB11 LITE andmete tagastatud geolokatsiooniv\u00e4lju, saate neid kasutada paljudes stsenaariumides. Saate liiklust filtreerida, kasutajaid nende asukohtade j\u00e4rgi blokeerida v\u00f5i \u00fcmber suunata.<\/p>\n<p>Kui teil on rakendamise kohta rohkem k\u00fcsimusi, leiate rohkem \u00f5petusi <a href=\"https:\/\/blog.ip2location.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">IP2Location Blogist<\/a>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>K\u00fclastage m\u00f5nda veebisaiti ja leiate, et t\u00f5en\u00e4oliselt kasutatakse m\u00f5nda lokaliseerimisvormi. K\u00f5ige tavalisem on teile kohalike reklaamide kuvamine &#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":[274],"tags":[842],"class_list":["post-24481","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-5","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/24481","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/comments?post=24481"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/24481\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media\/20619"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media?parent=24481"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/categories?post=24481"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/tags?post=24481"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}