Gibt „Stadt, Bundesland“ zurück, falls gefunden, andernfalls den oben festgelegten Standardwert.
function detect_city($ip) {
$default = 'UNKNOWN';
if (!is_string($ip) || strlen($ip) < 1 || $ip == '127.0.0.1' || $ip == 'localhost')
$ip = '8.8.8.8';
$curlopt_useragent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)';
$url = 'http://ipinfodb.com/ip_locator.php?ip=' . urlencode($ip);
$ch = curl_init();
$curl_opt = array(
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_USERAGENT => $curlopt_useragent,
CURLOPT_URL => $url,
CURLOPT_TIMEOUT => 1,
CURLOPT_REFERER => 'http://' . $_SERVER['HTTP_HOST'],
);
curl_setopt_array($ch, $curl_opt);
$content = curl_exec($ch);
if (!is_null($curl_info)) {
$curl_info = curl_getinfo($ch);
}
curl_close($ch);
if ( preg_match('{<li>City : ([^<]*)</li>}i', $content, $regs) ) {
$city = $regs[1];
}
if ( preg_match('{<li>State/Province : ([^<]*)</li>}i', $content, $regs) ) {
$state = $regs[1];
}
if( $city!='' && $state!='' ){
$location = $city . ', ' . $state;
return $location;
}else{
return $default;
}
}
Bitte fälschen Sie keine User-Agents von Webbrowsern
Wenn die Angabe eines User-Agents erforderlich ist (was nicht unüblich und eine gute Praxis ist), dann füllen Sie stattdessen etwas Sinnvolles ein.
Danke :)
Beachten Sie, dass dies wahrscheinlich nicht gut skaliert, da es von einem Drittanbieterdienst abhängt und vom HTML-Output dieses Dienstes. Kann jederzeit brechen und Ihre Seite verlangsamen.
(natürlich alles bereinigen, was Sie von hier erhalten, nichts voraussetzen)
Leider ist der Dienst ipinfodb.com nicht sehr genau... Ich bin in der Innenstadt von San Francisco, er denkt, ich bin in Santa Clara, CA. :(
Hallo.
Könnte ich wissen, wie ich Informationen darüber erhalte, wie weit der IP-Standort von mir entfernt ist? Danke.
würde mir das helfen, eine Funktion auf einer Website für einen bestimmten Bundesstaat zu öffnen???
Ich komme aus Kolkata, aber es zeigt, dass ich aus Mumbai bin!!
Wunderbares Skript und einfache Programmierung... wirklich effektiv.
Danke...
Wie kann ich dieses Skript in ein WordPress-Plugin verwandeln?
Ich stimme TeMC voll und ganz zu
Versuchen Sie dies http://www.creativebrain.web.id/media.php?action=readnews&id=319&title=PHP%20Script%20%3A%20IP%20Address%20Detector
Ich hoffe, mein Skript ist nützlich :)
Freund, Ihr Skript analysiert auch eine Website von Drittanbietern.
Tolles Snippet, könnte aber eine kleine Aktualisierung gebrauchen!
Ihr Freund, StevenCodes.
Hallo,
Versuchen Sie dies in PHP, dies verwendet auch eine Website von Drittanbietern.
Dies ist der bisher kürzeste Code, den ich zur Erkennung eines Standorts per IP verwendet habe.
:)
Ich habe es versucht, leider hat es seinen kostenlosen Dienst eingestellt.
Was den Drittanbieterdienst angeht, ist es besser, sich auf Dienste zu verlassen, die für den externen Zugriff konzipiert sind und keine HTML-Seiten parsen. Zum Beispiel gibt es hier einen Dienst, der gute JSON- oder XML-Schnittstellen für den Zugriff auf Geo-IP-Daten bietet: http://smart-ip.net/geoip-api
Diejenigen, die fehlerhafte Standorte melden, müssen bedenken, dass eine IP nur bis zu dem ISP-Netzwerksegment reicht, das die IP zugewiesen hat. Wenn Sie sich also in einem dicht besiedelten Gebiet mit dichter Netzwerkinfrastruktur befinden, ist dies genauer, aber wenn Sie sich in einem ländlicheren Gebiet oder an einem ausländischen Standort befinden, kann das Netzwerksegment recht groß sein.
Wie wäre es mit ipinfo.io?
Sie können einfach dies verwenden: http://ipinfo.io/json
und Sie erhalten eine perfekte JSON-Ausgabe... aber Sie müssen sie mit JS verwenden.
Oder alternativ mit PHP
Eine PHP-Zeile
print_r(json_decode(file_get_contents('http://ipinfo.io/'.$_SERVER['REMOTE_ADDR'].'/json'), true));Sauberer PHP-Code
gibt zurück
Danke, das ist das einfachste und nützlichste Skript für GeoIP.
Die API, die Sie verwenden, ist ziemlich langsam und liefert manchmal auch falsche Informationen. Prüfen Sie diese hier: http://codicious.blogspot.in/2014/04/getting-ip-address.html
Es verwendet eine andere API, um IP-Informationen zu erhalten, und ist auch schnell und liefert korrekte Informationen.
Hallo, wir können den Standort per IP erkennen. Gehen Sie zu dieser Website, um den Standort per IP zu erkennen: http://www.melissadata.in/cloud-services/ip-locator-cloud-service
Oh verdammt, das ist wie 7 Jahre alt. Kein Wunder, dass es nicht funktioniert.