{"id":26436,"date":"2021-06-22T17:42:00","date_gmt":"2021-06-22T14:42:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26436"},"modified":"2021-10-17T18:13:56","modified_gmt":"2021-10-17T15:13:56","slug":"leidke-geograafiline-asukoht-kasutades-php-s-tasuta-ip-aadressi","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/et\/leidke-geograafiline-asukoht-kasutades-php-s-tasuta-ip-aadressi\/","title":{"rendered":"Leidke geograafiline asukoht, kasutades PHP-s tasuta IP-aadressi"},"content":{"rendered":"<p>Kasutaja geograafilise asukoha ja riigi teabe leidmine on vajalik enamiku veebisaitide jaoks. T\u00f5en\u00e4oliselt peate n\u00e4itama erinevat sisu vastavalt kasutaja riigile, n\u00e4itama erinevaid hindu vastavalt riigi valuutakoodidele jne. Nende stsenaariumide korral peate leidma kasutaja geograafilise asukoha ja esitama sisu vastavalt.<\/p>\n<p>Selles artiklis n\u00e4itan teile, kuidas leida geograafilist asukohta PHP-s oleva kasutaja IP-aadressi abil. Kasutame <a href=\"https:\/\/ipgeolocationapi.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">IP Geolocation API teenust,<\/a> mis on t\u00e4iesti tasuta.<\/p>\n<h3>Geograafilise asukoha hankimine IP-aadressi abil<\/h3>\n<p>PHP-s saame kasutada &quot;IP Geolocation API&quot; teenust cURLi ja Guzzle&#8217;i kaudu. M\u00f5lemad on populaarsed helistamiseks v\u00e4listele API-teenustele ja vastuse saamiseks. S\u00f5ltuvalt teie projekti k\u00e4igust v\u00f5ite kasutada kas cURLi v\u00f5i Guzzle&#8217;i. M\u00f5lemal juhul peame k\u00f5igepealt hankima kasutaja IP-aadressi. Niisiis, kirjutage allpool toodud meetod, mis tagastab IP-aadressi.<\/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>Kasutades cURL-i<\/h4>\n<p>CURL on vaikimisi kaasas PHP installiga. \u00dchtegi paketti pole vaja eraldi installida. Enne selle kasutamist peate lihtsalt veenduma, et see on teie serveris lubatud.<\/p>\n<p>CURL-i kaudu helistame kasutaja IP-aadressi andvale IP-geolokatsiooni API l\u00f5pp-punktile ja printime vastuse.<\/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>Saad v\u00e4ljundi JSON-vormingus umbes nagu allpool.<\/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&#8217;i kasutamine<\/h4>\n<p><a href=\"https:\/\/docs.guzzlephp.org\/en\/latest\/overview.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Guzzle<\/a> on PHP HTTP klient HTTP-p\u00e4ringute saatmiseks. See on alternatiiv curlile. See pakub arendajatele palju puhast koodi ja paremat kogemust.<\/p>\n<p>Esmalt peate helilooja abil installima Guzzle&#8217;i, k\u00e4ivitades k\u00e4su:<\/p>\n<pre><code>composer require guzzlehttp\/guzzle<\/code><\/pre>\n<p>J\u00e4rgmisena kirjutage kood, mis kutsub API-d l\u00e4bi Guzzle&#8217;i.<\/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>Nii saame geograafilise asukoha, kasutades IP-aadressi PHP-s. Palun jagage oma m\u00f5tteid v\u00f5i ettepanekuid allpool olevas kommentaaride jaotises.<\/p>\n<h4>seotud artiklid<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/laraveli-geoip-raamatukogu-saate-teada-geograafilist-asukohta-ip-aadressi-abil\/\" title=\"Laraveli Geoipi raamatukogu - saate teada geograafilist asukohta IP-aadressi abil\">Laraveli Geoipi raamatukogu &#8211; saate teada geograafilist asukohta IP-aadressi abil<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kuidas-saada-geograafilist-asukohta-ip-st-php-s\/\" title=\"Kuidas saada geograafilist asukohta IP-st PHP-s\">Kuidas saada geograafilist asukohta IP-st PHP-s<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kuidas-kasutada-guzzle-i-php-http-klienti-http-paringute-saatmiseks\/\" title=\"Kuidas kasutada Guzzle&#039;i - PHP HTTP-klienti HTTP-p\u00e4ringute saatmiseks\">Kuidas kasutada Guzzle&#8217;i &#8211; PHP HTTP-klienti HTTP-p\u00e4ringute saatmiseks<\/a><\/li>\n<\/ul>\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>M\u00f5nikord peame leidma kasutaja geograafilise asukoha, et pakkuda erinevat sisu vastavalt riigile. Selles artiklis n\u00e4itame teile, kuidas saada<\/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":[274],"tags":[842],"class_list":["post-26436","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\/26436","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=26436"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/26436\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media\/21605"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media?parent=26436"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/categories?post=26436"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/tags?post=26436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}