Rufen Sie den aktuellen Standort eines Benutzers ab

Lesezeit: 4 Minuten

Benutzeravatar von Jacek Francuz
Jacek Francuz

Wie kann ich den aktuellen Standort eines Benutzers anhand der IP-Adresse bestimmen (ich denke, es funktioniert so).

  • MaxMind GeoIP ist ein guter Dienst. Sie haben auch einen kostenlosen Suchdienst auf Stadtebene.

    – gloma

    22. März 2011 um 22:35 Uhr


  • Vielleicht möchten Sie einen Blick darauf werfen GeoIP Country Whois Locator gefunden am PHPKlassen.

    – madkris24

    22. März 2011 um 22:44 Uhr

<?php
$user_ip = getenv('REMOTE_ADDR');
$geo = unserialize(file_get_contents("http://www.geoplugin.net/php.gp?ip=$user_ip"));
$country = $geo["geoplugin_countryName"];
$city = $geo["geoplugin_city"];
?>

  • Geoplugin ist nicht die beste Plattform. Es ist auf 120 Aktionen pro Minute begrenzt. Es hat bei mir funktioniert, aber in letzter Zeit fing es an, 403 für alle Anfragen von meinem Server anzuzeigen. Wer weiß warum. (Ich habe diese 120 Verbindungen nicht in einer Minute hergestellt)

    Benutzer5147563

    30. März 2017 um 17:18 Uhr

  • Nutzlos mit diesen Grenzen.

    – Michael Rogers

    9. Juni 2017 um 6:58 Uhr

Benutzeravatar von Naveen DA
Naveen DA

Bearbeitet

Ändern freegeoip.net hinein ipinfo.io

<?php    

function get_client_ip()
{
    $ipaddress="";
    if (isset($_SERVER['HTTP_CLIENT_IP'])) {
        $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
    } else if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else if (isset($_SERVER['HTTP_X_FORWARDED'])) {
        $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
    } else if (isset($_SERVER['HTTP_FORWARDED_FOR'])) {
        $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
    } else if (isset($_SERVER['HTTP_FORWARDED'])) {
        $ipaddress = $_SERVER['HTTP_FORWARDED'];
    } else if (isset($_SERVER['REMOTE_ADDR'])) {
        $ipaddress = $_SERVER['REMOTE_ADDR'];
    } else {
        $ipaddress="UNKNOWN";
    }

    return $ipaddress;
}
$PublicIP = get_client_ip();
$json     = file_get_contents("http://ipinfo.io/$PublicIP/geo");
$json     = json_decode($json, true);
$country  = $json['country'];
$region   = $json['region'];
$city     = $json['city'];
?>

  • Während dieser Code die Frage beantworten kann, verbessert die Bereitstellung von zusätzlichem Kontext dazu, warum und/oder wie dieser Code die Frage beantwortet, seinen langfristigen Wert.

    – Jay Blanchard

    24. April 2017 um 19:31 Uhr

  • Gibt es eine Problemumgehung für localhost-Server? Meine IP-Adresse erscheint immer als ::1

    – Vince

    25. Dezember 2017 um 20:59 Uhr

  • @vince Localhost gibt immer ::1 IP-Adresse zurück

    – Naveen DA

    26. Dezember 2017 um 2:29 Uhr

  • Deprecation_message: “Dieser API-Endpunkt ist veraltet und funktioniert am 1. Juli 2018 nicht mehr. Weitere Informationen finden Sie unter: github.com/apilayer/freegeoip#readme“,

    – Mose Schwartz

    23. Mai 2018 um 17:09 Uhr

  • Wofür ist es notwendig, alle weitergeleiteten IPs zu überprüfen? Ich dachte nur checken if(isset(HTTP_X_FORWARDED_FOR)) ist notwendig.

    – klediooo

    18. Juli 2019 um 17:32 Uhr

Benutzeravatar von Adnan Rasheed
Adnan Rasheed

<?php
    $query = @unserialize (file_get_contents('http://ip-api.com/php/'));
    if ($query && $query['status'] == 'success') {
        echo 'Hey user from ' . $query['country'] . ', ' . $query['city'] . '!';
    }
    foreach ($query as $data) {
        echo $data . "<br>";
    }
?>

Probieren Sie diesen Code mit dieser Quelle aus. *Es klappt!

  • Tun oder nicht tun. Es gibt kein “versuchen”. A gute Antwort wird immer eine Erklärung dafür haben, was getan wurde und warum es auf diese Weise getan wurde, nicht nur für das OP, sondern für zukünftige Besucher von SO.

    – Jay Blanchard

    24. April 2017 um 19:31 Uhr

  • Ist es eine kostenlose API?

    – Pisumathu

    27. April 2022 um 7:46 Uhr

Benutzeravatar von Bedh
Bett

Versuchen Sie diesen Code mit der hostip.info Service:

$country=file_get_contents('http://api.hostip.info/get_html.php?ip=');
echo $country;

// Reformat the data returned (Keep only country and country abbr.)
$only_country=explode (" ", $country);

echo "Country : ".$only_country[1]." ".substr($only_country[2],0,4);

Benutzeravatar von Venkat Sai
Venkat Sai

Da PHP auf einen Server angewiesen ist, kann der Standort in Echtzeit nicht bereitgestellt werden. Es kann nur ein statischer Standort angegeben werden. Es ist besser, sich nicht auf JavaScript für einen Standort zu verlassen, anstatt PHP zu verwenden.

Aber es ist notwendig, die JavaScript-Daten an PHP zu senden, damit sie für ein Programm auf dem Server leicht zugänglich sind.

Benutzeravatar von Peter Mortensen
Peter Mortensen

Eine IP-Adresse gibt Ihnen einen ziemlich unzuverlässigen Standort. Sie können den Standort beim Laden mit JavaScript per Ajax versehen, wenn es nicht unbedingt erforderlich ist, den Standort zunächst zu haben. (Außerdem muss der Benutzer Ihnen seine Zugriffsberechtigung erteilen.)

HTML5-Geolokalisierung

Benutzeravatar von Peter Mortensen
Peter Mortensen

Das alte Die freegeoip-API ist jetzt veraltet und wird am 01.07.2018 eingestellt.

Die neue API ist von ipstack. Sie müssen das Konto in ipstack erstellen. Dann können Sie den Zugriffsschlüssel in der API-URL verwenden.

$url = "http://api.ipstack.com/122.167.180.20?access_key=ACCESS_KEY&format=1";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
$response = json_decode($response);
$city  = $response->city; // You can get all the details like longitude, latitude from the '$response'.

Weitere Informationen finden Sie unter freegeoip (GitHub).

  • Dies ist ein kostenpflichtiger Dienst.

    – Benutzer2060451

    7. März 2019 um 2:00 Uhr

  • Die Frage bezieht sich nicht auf den kostenlosen Service

    – lalithkumar

    7. März 2019 um 6:30 Uhr

  • sie haben ein freies. begrenzte Stufe

    – Geistesblitz

    13. Juni 2021 um 17:55 Uhr

1445000cookie-checkRufen Sie den aktuellen Standort eines Benutzers ab

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy