Geo-Standort basierend auf IP-Adresse – PHP [closed]
Lesezeit: 4 Minuten
Latox
Wir suchen nach einer schnellen und genauen Möglichkeit, den Standort des Besuchers anhand seiner IP-Adresse zu ermitteln.
Wir haben ipinfodb.com ausprobiert, aber ihre API hat unsere Website beim API-Aufruf stark verzögert.
Welche anderen Dienste schlagen Sie vor?
Mögliches Duplikat: Welche Dienste gibt es, die eine Person basierend auf IP geolokalisieren?
– hakre
14. Oktober 11 um 11:41 Uhr
mögliches Duplikat von Get Country of IP Address with PHP
– Juraj Blaho
02.09.13 um 11:56 Uhr
Eine kostenlose und einfach zu verwendende API: ipinfodb.com/api
– Mylad Safaei
4. Mai 20 um 18:56 Uhr
David Kroft
Holen Sie sich Geo-IP-Informationen
Fordert einen Geo-IP-Server (netip.de) zur Überprüfung an, gibt zurück, wo sich eine IP befindet (Host, Bundesland, Land, Stadt).
<?php
$ip='94.219.40.96';
print_r(geoCheckIP($ip));
//Array ( [domain] => dslb-094-219-040-096.pools.arcor-ip.net [country] => DE - Germany [state] => Hessen [town] => Erzhausen )
//Get an array with geoip-infodata
function geoCheckIP($ip)
{
//check, if the provided ip is valid
if(!filter_var($ip, FILTER_VALIDATE_IP))
{
throw new InvalidArgumentException("IP is not valid");
}
//contact ip-server
$response=@file_get_contents('http://www.netip.de/search?query='.$ip);
if (empty($response))
{
throw new InvalidArgumentException("Error contacting Geo-IP-Server");
}
//Array containing all regex-patterns necessary to extract ip-geoinfo from page
$patterns=array();
$patterns["domain"] = '#Domain: (.*?) #i';
$patterns["country"] = '#Country: (.*?) #i';
$patterns["state"] = '#State/Region: (.*?)<br#i';
$patterns["town"] = '#City: (.*?)<br#i';
//Array where results will be stored
$ipInfo=array();
//check response from ipserver for above patterns
foreach ($patterns as $key => $pattern)
{
//store the result in array
$ipInfo[$key] = preg_match($pattern,$response,$value) && !empty($value[1]) ? $value[1] : 'not found';
}
return $ipInfo;
}
?>
Das ist nett, aber ich würde eine Datenbank bevorzugen, da unsere Website Tausende von Anfragen erhält und die Geo-IP-Anfrage pro Seitenladevorgang gestellt wird.
– Latox
14. Oktober 11 um 11:51 Uhr
@latox Ich habe gerade meine Frage aktualisiert, schau dir diesen Link an, sollte das sein, was du nach Nomsayn suchst?
– David Croft
14. Oktober 11 um 11:53 Uhr
@Latox – Wenn Sie einen lokalen Cache mit den Ergebnissen Ihrer API-Aufrufe unterhalten, müssen Sie nur den Overhead eines API-Aufrufs für jede neue IP-Adresse bezahlen. Aber die DB im obigen Link scheint perfekt für Ihre Anwendung zu sein, solange Sie keine tagesaktuelle Genauigkeit benötigen.
– Petrus
14. Oktober 11 um 12:17 Uhr
Hey, kennst du die Nutzungsbedingungen für diese Seite? wie maximale Abfrage pro Tag/Stunde, Lizenzvereinbarung … ich kann es anscheinend nicht auf seiner Seite finden … TIA: D
– Kelvin Barsana
8. Oktober 14 um 9:24 Uhr
Dieser Beitrag auf PHPANDSTUFF ist voll von falschen Kommentaren und stützt sich auf eine regelmäßig aktualisierte DB. Überhaupt nicht nützlich. Wo ist eine universelle API, die diese Daten asynchron abrufen kann?
– 3 Dom
28. Januar 15 um 12:22 Uhr
Das Beste und Neueste ist GeoplugginAPI, es ist kostenlos und ohne Einschränkungen, die ich für diese meine Website verwende http://spidersoft.in für ortsbezogenen Download lesen Sie mehr unter diesem Link
Hier ist PHP-Code. Der Code wird Ihre Anfrage automatisch zwischenspeichern, sodass Ihr Server nicht mehrere Anfragen sendet. Geben Sie IP-Adresse, Land, Stadt und weitere Informationen zurück.
<?php
// Required Libraries
require_once("ip.codehelper.io.php");
require_once("php_fast_cache.php");
// New Class
$_ip = new ip_codehelper();
// Detect Real IP Address & Location
$real_client_ip_address = $_ip->getRealIP();
$visitor_location = $_ip->getLocation($real_client_ip_address);
// Output result
echo $visitor_location['Country']."";
echo "<pre>";
print_r($visitor_location);
Der Marktführer in diesem Bereich und einer, der eine Unternehmenslösung anbietet, ist Digitales Element. Sie bieten eine breite Palette von APIs, einschließlich PHP, für den Zugriff auf ihren Server, den Sie lokal installieren oder über einen Webdienst aufrufen können. Ihre Daten sind von hoher Qualität und die Leistung ihrer Lösung ist ziemlich gut. MaxMind ist eine weitere Option, die gute Kritiken erhält.
Für die beste Genauigkeit sollten Sie sich für einen Dienst oder eine Lösung entscheiden, bei der Sie wöchentliche Updates erhalten, da sich diese Dinge innerhalb eines bestimmten Netzwerks ziemlich ändern können. Die Kosten hängen von der Häufigkeit der Aktualisierungen, der Granularität der Geodaten und der Anzahl der gewünschten zusätzlichen Felder oder Datenbanken ab. Einige Anbieter bieten Sprache, Demografie, Unternehmen und Domain an, um nur einige zu nennen.
.
7874600cookie-checkGeo-Standort basierend auf IP-Adresse – PHP [closed]yes
Mögliches Duplikat: Welche Dienste gibt es, die eine Person basierend auf IP geolokalisieren?
– hakre
14. Oktober 11 um 11:41 Uhr
mögliches Duplikat von Get Country of IP Address with PHP
– Juraj Blaho
02.09.13 um 11:56 Uhr
Eine kostenlose und einfach zu verwendende API: ipinfodb.com/api
– Mylad Safaei
4. Mai 20 um 18:56 Uhr