...
✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Finden Sie Geolocation mit IP-Adresse kostenlos in PHP

242

Das Auffinden von Geolocation- und Länderinformationen eines Benutzers ist für die meisten Websites erforderlich. Wahrscheinlich müssen Sie unterschiedliche Inhalte basierend auf dem Land eines Benutzers anzeigen, unterschiedliche Preise gemäß den Währungscodes des Landes usw. anzeigen. In diesen Szenarien müssen Sie den Geostandort eines Benutzers finden und Inhalte entsprechend bereitstellen.

In diesem Artikel zeige ich Ihnen, wie Sie Geolocation mithilfe der IP-Adresse eines Benutzers in PHP finden. Wir werden den IP-Geolocation-API-Dienst verwenden, der völlig kostenlos ist.

Geolokalisierung mit IP-Adresse abrufen Get

In PHP können wir den Dienst der ‘IP Geolocation API’ über cURL und Guzzle nutzen. Beide sind beliebt, um externe API-Dienste aufzurufen und die Antwort daraus zu erhalten. Je nach Ablauf Ihres Projekts können Sie entweder cURL oder Guzzle verwenden. In beiden Fällen benötigen wir zunächst die IP-Adresse des Benutzers. Schreiben Sie also die folgende Methode, die eine IP-Adresse zurückgibt.

<?php
// get user's IP address
function getUserIpAddr() {
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}

cURL verwenden

Die cURL wird standardmäßig mit der PHP-Installation mitgeliefert. Sie müssen kein Paket separat installieren. Sie müssen nur sicherstellen, dass es auf Ihrem Server aktiviert ist, bevor Sie es verwenden.

Über cURL rufen wir den Endpunkt der ‘IP Geolocation API’ auf, geben die IP-Adresse des Benutzers an und drucken die Antwort.

<?php
$ip_address = getUserIpAddr();
  
$url = "https://api.ipgeolocationapi.com/geolocate/$ip_address";
$ch = curl_init();  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$response = curl_exec($ch);
$arr_result = json_decode($response);
print_r($arr_result);

Sie erhalten die Ausgabe im JSON-Format etwa wie folgt.

{
   "continent": "Asia",
   "address_format": "{{recipient}}n{{street}}n{{region}}n{{city}} {{postalcode}}n{{country}}",
   "alpha2": "IN",
   "alpha3": "IND",
   "country_code": "91",
   "international_prefix": "00",
   "ioc": "IND",
   "gec": "IN",
   "name": "India",
   "national_destination_code_lengths": [
     2
   ],
   "national_number_lengths": [
     10
   ],
   "national_prefix": "0",
   "number": "356",
   "region": "Asia",
   "subregion": "Southern Asia",
   "world_region": "APAC",
   "un_locode": "IN",
   "nationality": "Indian",
   "postal_code": true,
   "unofficial_names": [
     "India",
     "Indien",
     "Inde",
     "インド"
   ],
   "languages_official": [
     "hi",
     "en"
   ],
   "languages_spoken": [
     "hi",
     "en"
   ],
   "geo": {
     "latitude": 20.593684,
     "latitude_dec": "23.4060115814209",
     "longitude": 78.96288,
     "longitude_dec": "79.45809173583984",
     "max_latitude": 35.5087008,
     "max_longitude": 97.3953587,
     "min_latitude": 6.4626999,
     "min_longitude": 68.1097,
     "bounds": {
       "northeast": {
         "lat": 35.5087008,
         "lng": 97.3953587
       },
       "southwest": {
         "lat": 6.4626999,
         "lng": 68.1097
       }
     }
   },
   "currency_code": "INR",
   "start_of_week": "monday"
 }

Guzzle verwenden

Guzzle 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ür Entwickler.

Zuerst müssen Sie Guzzle mit dem Composer installieren, indem Sie den folgenden Befehl ausführen:

composer require guzzlehttp/guzzle

Schreiben Sie als Nächstes den folgenden Code, der die API über Guzzle aufruft.

<?php
require_once "vendor/autoload.php";
  
use GuzzleHttpClient;
  
$ip_address = getUserIpAddr();
  
$client = new Client();
  
$response = $client->request('GET', 'https://api.ipgeolocationapi.com/geolocate/'.$ip_address);
  
if($response->getStatusCode() == 200) {
    $body = $response->getBody();
    $arr_body = json_decode($body);
    print_r($arr_body);
}

Auf diese Weise erhalten wir die Geolokalisierung mithilfe der IP-Adresse in PHP. Bitte teilen Sie Ihre Gedanken oder Vorschläge im Kommentarbereich unten mit.

Zum Thema passende Artikel

Aufnahmequelle: artisansweb.net

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen