it-swarm.com.de

Aktuellen Standort des Benutzers abrufen

Wie kann ich den aktuellen Standort des Benutzers basierend auf der IP-Adresse bestimmen?.

29
Jacek Francuz
<?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"];
?>
28
Hamza

Bearbeitet

Ändern Sie freegeoip.net in 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'];

?>
19
NaveenDA

Versuchen Sie diesen Code mithilfe des Dienstes hostip.info :

$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);
9
Bedh
<?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>";
}
?>

Versuchen Sie diesen Code mit dieser Quelle. Es klappt!

9
Adnan Rasheed

MaxMind GeoIP ist ein guter Service. Sie haben auch einen kostenlosen Lookup-Service auf Stadtebene.

4
glomad

Sie können einen Blick auf GeoIP Country Whois Locator auf PHPClasses werfen. 

3
madkris24

da PHP auf dem Server basiert, kann der Echtzeitstandort nicht angegeben werden. Es kann nur der statische Standort angegeben werden. Es ist besser zu vermeiden, dass Sie sich auf den JS als Standort verlassen, anstatt PHP zu verwenden. Es ist jedoch erforderlich, die js-Daten in php zu veröffentlichen, damit sie leicht auf dem Server programmiert werden können

2
Venkat Sai

Die alte Freegeoip-API ist nun veraltet und wird am 1. Juli 2018 eingestellt.

Die neue API stammt von https://ipstack.com . 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 hier:/ https://github.com/apilayer/freegeoip

0
lalithkumar

Eine IP gibt Ihnen einen ziemlich unzuverlässigen Standort. Sie könnten Ajax den Standort beim Laden mit JS angeben, wenn es nicht wichtig ist, den Standort zuerst festzulegen. (Außerdem muss der Benutzer Ihnen die Berechtigung erteilen, darauf zuzugreifen.)

Html5 Geolocation

0
Sam Pettersson