{"id":26406,"date":"2021-06-22T17:54:00","date_gmt":"2021-06-22T14:54:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26406"},"modified":"2021-10-18T02:58:28","modified_gmt":"2021-10-17T23:58:28","slug":"trova-la-geolocalizzazione-utilizzando-l-indirizzo-ip-gratuitamente-in-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/it\/trova-la-geolocalizzazione-utilizzando-l-indirizzo-ip-gratuitamente-in-php\/","title":{"rendered":"Trova la geolocalizzazione utilizzando l&#8217;indirizzo IP gratuitamente in PHP"},"content":{"rendered":"<p>Trovare la geolocalizzazione e le informazioni sul paese di un utente \u00e8 necessario per la maggior parte dei siti web. Probabilmente devi mostrare contenuti diversi in base al paese di un utente, mostrare prezzi diversi in base ai codici valuta del paese, ecc. In questi scenari, devi trovare la geolocalizzazione di un utente e servire i contenuti di conseguenza.<\/p>\n<p>In questo articolo, ti mostro come trovare la geolocalizzazione utilizzando l&#8217;indirizzo IP di un utente in PHP. Utilizzeremo il <a href=\"https:\/\/ipgeolocationapi.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">servizio API di geolocalizzazione IP<\/a> che \u00e8 completamente gratuito.<\/p>\n<h3>Ottieni la geolocalizzazione utilizzando l&#8217;indirizzo IP<\/h3>\n<p>In PHP possiamo utilizzare il servizio di &#8216;IP Geolocation API&#8217; tramite cURL e Guzzle. Entrambi sono popolari per chiamare servizi API esterni e ottenere la risposta da esso. A seconda del flusso del tuo progetto puoi usare cURL o Guzzle. In entrambi i casi, dobbiamo prima ottenere l&#8217;indirizzo IP dell&#8217;utente. Quindi, scrivi il metodo seguente che restituir\u00e0 un indirizzo IP.<\/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>Usando cURL<\/h4>\n<p>Il cURL viene fornito per impostazione predefinita con l&#8217;installazione di PHP. Non \u00e8 necessario installare alcun pacchetto separatamente. Devi solo assicurarti che sia abilitato sul tuo server prima di usarlo.<\/p>\n<p>Tramite cURL, chiameremo l&#8217;endpoint di &quot;IP Geolocation API&quot; fornendo l&#8217;indirizzo IP dell&#8217;utente e stamperemo la risposta.<\/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>Otterrai l&#8217;output in formato JSON come di seguito.<\/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>Usando Guzzle<\/h4>\n<p><a href=\"https:\/\/docs.guzzlephp.org\/en\/latest\/overview.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Guzzle<\/a> \u00e8 un client HTTP PHP per l&#8217;invio di richieste HTTP. \u00c8 un&#8217;alternativa a cURL. Fornisce un codice molto pulito e un&#8217;esperienza migliore per gli sviluppatori.<\/p>\n<p>All&#8217;inizio, devi installare Guzzle usando il Composer eseguendo il comando:<\/p>\n<pre><code>composer require guzzlehttp\/guzzle<\/code><\/pre>\n<p>Quindi, scrivi il codice sotto che chiama l&#8217;API tramite Guzzle.<\/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>Ecco come otteniamo la geolocalizzazione utilizzando l&#8217;indirizzo IP in PHP. Si prega di condividere i tuoi pensieri o suggerimenti nella sezione commenti qui sotto.<\/p>\n<h4>articoli Correlati<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/libreria-laravel-geoip-scopri-la-geolocalizzazione-utilizzando-l-indirizzo-ip\/\" title=\"Libreria Laravel Geoip \u2013 Scopri la geolocalizzazione usando l&#039;indirizzo IP\">Libreria Laravel Geoip \u2013 Scopri la geolocalizzazione usando l&#8217;indirizzo IP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-ottenere-la-geolocalizzazione-dall-ip-in-php\/\" title=\"Come ottenere la geolocalizzazione dall&#039;IP in PHP\">Come ottenere la geolocalizzazione dall&#8217;IP in PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-utilizzare-guzzle-un-client-http-php-per-l-invio-di-richieste-http\/\" title=\"Come utilizzare Guzzle: un client HTTP PHP per l&#039;invio di richieste HTTP\">Come utilizzare Guzzle: un client HTTP PHP per l&#8217;invio di richieste HTTP<\/a><\/li>\n<\/ul>\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>A volte abbiamo bisogno di trovare la geolocalizzazione di un utente per offrire contenuti diversi in base al paese. In questo articolo, ti mostriamo come ottenere<\/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":[276],"tags":[846],"class_list":["post-26406","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\/26406","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=26406"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/26406\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media\/21605"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media?parent=26406"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/categories?post=26406"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/tags?post=26406"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}