{"id":26373,"date":"2021-06-22T18:28:00","date_gmt":"2021-06-22T15:28:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26373"},"modified":"2021-10-18T02:27:13","modified_gmt":"2021-10-17T23:27:13","slug":"finden-sie-geolocation-mit-ip-adresse-kostenlos-in-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/finden-sie-geolocation-mit-ip-adresse-kostenlos-in-php\/","title":{"rendered":"Finden Sie Geolocation mit IP-Adresse kostenlos in PHP"},"content":{"rendered":"<p>Das Auffinden von Geolocation- und L\u00e4nderinformationen eines Benutzers ist f\u00fcr die meisten Websites erforderlich. Wahrscheinlich m\u00fcssen Sie unterschiedliche Inhalte basierend auf dem Land eines Benutzers anzeigen, unterschiedliche Preise gem\u00e4\u00df den W\u00e4hrungscodes des Landes usw. anzeigen. In diesen Szenarien m\u00fcssen Sie den Geostandort eines Benutzers finden und Inhalte entsprechend bereitstellen.<\/p>\n<p>In diesem Artikel zeige ich Ihnen, wie Sie Geolocation mithilfe der IP-Adresse eines Benutzers in PHP finden. Wir werden den <a href=\"https:\/\/ipgeolocationapi.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">IP-Geolocation-API-Dienst verwenden,<\/a> der v\u00f6llig kostenlos ist.<\/p>\n<h3>Geolokalisierung mit IP-Adresse abrufen Get<\/h3>\n<p>In PHP k\u00f6nnen wir den Dienst der &#8218;IP Geolocation API&#8216; \u00fcber cURL und Guzzle nutzen. Beide sind beliebt, um externe API-Dienste aufzurufen und die Antwort daraus zu erhalten. Je nach Ablauf Ihres Projekts k\u00f6nnen Sie entweder cURL oder Guzzle verwenden. In beiden F\u00e4llen ben\u00f6tigen wir zun\u00e4chst die IP-Adresse des Benutzers. Schreiben Sie also die folgende Methode, die eine IP-Adresse zur\u00fcckgibt.<\/p>\n<pre><code>&lt;?php\n\/\/ get user's IP address\nfunction getUserIpAddr() {\n\u00a0\u00a0\u00a0\u00a0if (!empty($_SERVER['HTTP_CLIENT_IP'])) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$ip = $_SERVER['HTTP_CLIENT_IP'];\n\u00a0\u00a0\u00a0\u00a0} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];\n\u00a0\u00a0\u00a0\u00a0} else {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$ip = $_SERVER['REMOTE_ADDR'];\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0return $ip;\n}<\/code><\/pre>\n<h4>cURL verwenden<\/h4>\n<p>Die cURL wird standardm\u00e4\u00dfig mit der PHP-Installation mitgeliefert. Sie m\u00fcssen kein Paket separat installieren. Sie m\u00fcssen nur sicherstellen, dass es auf Ihrem Server aktiviert ist, bevor Sie es verwenden.<\/p>\n<p>\u00dcber cURL rufen wir den Endpunkt der &#8218;IP Geolocation API&#8216; auf, geben die IP-Adresse des Benutzers an und drucken die Antwort.<\/p>\n<pre><code>&lt;?php\n$ip_address = getUserIpAddr();\n\u00a0\u00a0\n$url = \"https:\/\/api.ipgeolocationapi.com\/geolocate\/$ip_address\";\n$ch = curl_init();\u00a0 \ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);\ncurl_setopt($ch, CURLOPT_URL, $url);\n$response = curl_exec($ch);\n$arr_result = json_decode($response);\nprint_r($arr_result);<\/code><\/pre>\n<p>Sie erhalten die Ausgabe im JSON-Format etwa wie folgt.<\/p>\n<pre><code>{\n   \"continent\": \"Asia\",\n   \"address_format\": \"{{recipient}}n{{street}}n{{region}}n{{city}} {{postalcode}}n{{country}}\",\n   \"alpha2\": \"IN\",\n   \"alpha3\": \"IND\",\n   \"country_code\": \"91\",\n   \"international_prefix\": \"00\",\n   \"ioc\": \"IND\",\n   \"gec\": \"IN\",\n   \"name\": \"India\",\n   \"national_destination_code_lengths\": [\n     2\n   ],\n   \"national_number_lengths\": [\n     10\n   ],\n   \"national_prefix\": \"0\",\n   \"number\": \"356\",\n   \"region\": \"Asia\",\n   \"subregion\": \"Southern Asia\",\n   \"world_region\": \"APAC\",\n   \"un_locode\": \"IN\",\n   \"nationality\": \"Indian\",\n   \"postal_code\": true,\n   \"unofficial_names\": [\n     \"India\",\n     \"Indien\",\n     \"Inde\",\n     \"\u30a4\u30f3\u30c9\"\n   ],\n   \"languages_official\": [\n     \"hi\",\n     \"en\"\n   ],\n   \"languages_spoken\": [\n     \"hi\",\n     \"en\"\n   ],\n   \"geo\": {\n     \"latitude\": 20.593684,\n     \"latitude_dec\": \"23.4060115814209\",\n     \"longitude\": 78.96288,\n     \"longitude_dec\": \"79.45809173583984\",\n     \"max_latitude\": 35.5087008,\n     \"max_longitude\": 97.3953587,\n     \"min_latitude\": 6.4626999,\n     \"min_longitude\": 68.1097,\n     \"bounds\": {\n       \"northeast\": {\n         \"lat\": 35.5087008,\n         \"lng\": 97.3953587\n       },\n       \"southwest\": {\n         \"lat\": 6.4626999,\n         \"lng\": 68.1097\n       }\n     }\n   },\n   \"currency_code\": \"INR\",\n   \"start_of_week\": \"monday\"\n }<\/code><\/pre>\n<h4>Guzzle verwenden<\/h4>\n<p><a href=\"https:\/\/docs.guzzlephp.org\/en\/latest\/overview.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Guzzle<\/a> ist ein PHP-HTTP-Client zum Senden von HTTP-Anfragen. Es ist eine Alternative zu cURL. Es bietet viel sauberen Code und eine bessere Erfahrung f\u00fcr Entwickler.<\/p>\n<p>Zuerst m\u00fcssen Sie Guzzle mit dem Composer installieren, indem Sie den folgenden Befehl ausf\u00fchren:<\/p>\n<pre><code>composer require guzzlehttp\/guzzle<\/code><\/pre>\n<p>Schreiben Sie als N\u00e4chstes den folgenden Code, der die API \u00fcber Guzzle aufruft.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\u00a0\n$ip_address = getUserIpAddr();\n\u00a0\u00a0\n$client = new Client();\n\u00a0\u00a0\n$response = $client-&gt;request('GET', 'https:\/\/api.ipgeolocationapi.com\/geolocate\/'.$ip_address);\n\u00a0\u00a0\nif($response-&gt;getStatusCode() == 200) {\n\u00a0\u00a0\u00a0\u00a0$body = $response-&gt;getBody();\n\u00a0\u00a0\u00a0\u00a0$arr_body = json_decode($body);\n\u00a0\u00a0\u00a0\u00a0print_r($arr_body);\n}<\/code><\/pre>\n<p>Auf diese Weise erhalten wir die Geolokalisierung mithilfe der IP-Adresse in PHP. Bitte teilen Sie Ihre Gedanken oder Vorschl\u00e4ge im Kommentarbereich unten mit.<\/p>\n<h4>Zum Thema passende Artikel<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/laravel-geoip-library-finden-sie-die-geolokalisierung-mithilfe-der-ip-adresse-heraus\/\" title=\"Laravel Geoip Library \u2013 Finden Sie die Geolokalisierung mithilfe der IP-Adresse heraus\">Laravel Geoip Library \u2013 Finden Sie die Geolokalisierung mithilfe der IP-Adresse heraus<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-erhalten-sie-geolokalisierung-von-ip-in-php\/\" title=\"So erhalten Sie Geolokalisierung von IP in PHP\">So erhalten Sie Geolokalisierung von IP in PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-verwenden-sie-guzzle-ein-php-http-client-zum-senden-von-http-anfragen\/\" title=\"So verwenden Sie Guzzle \u2013 Ein PHP-HTTP-Client zum Senden von HTTP-Anfragen\">So verwenden Sie Guzzle \u2013 Ein PHP-HTTP-Client zum Senden von HTTP-Anfragen<\/a><\/li>\n<\/ul>\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>Manchmal m\u00fcssen wir den Geostandort eines Benutzers ermitteln, um je nach Land unterschiedliche Inhalte bereitzustellen. In diesem Artikel zeigen wir Ihnen, wie Sie<\/p>\n","protected":false},"author":1,"featured_media":21605,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[272],"tags":[845],"class_list":["post-26373","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\/26373","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=26373"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/26373\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media\/21605"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media?parent=26373"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=26373"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=26373"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}