{"id":24215,"date":"2021-05-14T15:11:00","date_gmt":"2021-05-14T12:11:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24215"},"modified":"2021-10-18T02:44:15","modified_gmt":"2021-10-17T23:44:15","slug":"implementieren-von-ip-geolocation-mit-free-ip2location-lite-und-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/implementieren-von-ip-geolocation-mit-free-ip2location-lite-und-php\/","title":{"rendered":"Implementieren von IP-Geolocation mit Free IP2Location LITE und PHP"},"content":{"rendered":"<p>Besuchen Sie eine beliebige Website und Sie werden h\u00f6chstwahrscheinlich feststellen, dass irgendeine Form der Lokalisierung verwendet wird. Am h\u00e4ufigsten werden lokale Anzeigen geschaltet, obwohl die Website m\u00f6glicherweise fremd ist. Anhand der IP-Adresse des Webbesuchers kann der Websitebetreiber auf relevante Anzeigen und Inhalte ausgerichtet oder die Sprache der Website basierend auf Ihrem Geolokalisierungsland \u00e4ndern.<\/p>\n<p>Wir werden untersuchen, wie Sie diese Geolokalisierungsfunktion mithilfe von PHP in Ihre eigene Website implementieren k\u00f6nnen. Teil 1 befasst sich mit der Erstellung der Datenbank &#038; Tabelle sowie dem Import der Daten. Teil 2 zeigt, wie Sie mit PHP die Datenbank abfragen und die Ergebnisse abrufen.<\/p>\n<h3>Teil 1: Importieren der Geolocation-Daten<\/h3>\n<p>Nehmen wir an, auf Ihrer Website l\u00e4uft ein Apache-Webserver mit PHP als Backend. Wir gehen davon aus, dass Sie MySQL verwenden, da PHP normalerweise mit MySQL arbeitet.<\/p>\n<p>Der erste Schritt besteht darin, die DB11 LITE-Datenbankdatei von. herunterzuladen <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> die nach der Anmeldung kostenlos ist.<\/p>\n<p>Nachdem Sie die ZIP-Datei heruntergeladen haben, extrahieren Sie die IP2LOCATION-LITE-DB11.CSV-Datendatei in einen Ordner namens <code>\/root\/ip2location_data<\/code>(dies ist nur ein Beispielordnername).<\/p>\n<p>F\u00fchren Sie in Ihrem MySQL Folgendes aus, um die Datenbank und die Tabelle zu erstellen, in der wir die DB11-Daten speichern.<\/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>F\u00fchren Sie nun Folgendes in MySQL aus, um die Daten zu importieren.<\/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>Teil 2: Abfragen der Geolocation-Daten auf Ihrer PHP-Webseite<\/h3>\n<p>Wir erstellen nun die PHP-Webseite, um die Datenbank abzufragen und die Geolokalisierungsdaten f\u00fcr den Seitenbesucher auszugeben.<\/p>\n<p>Erstellen Sie eine aufgerufene Seite <code>test.php<\/code>und f\u00fcgen Sie den folgenden Code darin ein.<\/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>\u00d6ffnen Sie nun diese Seite in Ihrem Browser. Sie sollten alle Geolokalisierungsdaten f\u00fcr Ihre eigene IP-Adresse sehen. Sobald Sie alle Geolocation-Felder sehen, die von den IP2Location DB11 LITE-Daten zur\u00fcckgegeben werden, k\u00f6nnen Sie sie in vielen Szenarien verwenden. Sie k\u00f6nnen den Verkehr filtern, Benutzer basierend auf ihren Standorten blockieren oder umleiten.<\/p>\n<p>Wenn Sie weitere Fragen zur Implementierung haben, finden Sie weitere Tutorials im <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\">Aufnahmequelle:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Besuchen Sie eine beliebige Website und Sie werden h\u00f6chstwahrscheinlich feststellen, dass eine Form der Lokalisierung verwendet wird. Am h\u00e4ufigsten werden lokale Anzeigen geschaltet&#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":[272],"tags":[845],"class_list":["post-24215","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-3","tag-affiai-de"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24215","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/comments?post=24215"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24215\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media\/20619"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media?parent=24215"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=24215"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=24215"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}