2010-03-02 13 views
19

Heyy JungsJede zuverlässige API zur Verfügung, um zu bestimmen Benutzer- Stadt und Land von IP-Adresse

Ich wollte überprüfen, ob jemand eine zuverlässige API weiß, die wir verwenden können die Benutzer-Stadt und Land von seiner IP-Adresse zu ermitteln.

Meine Suche auf Google führte zu http://ipinfodb.com/ip_location_api.php

Es scheint perfekt, aber meine einzige Sorge ist die Zuverlässigkeit dieses Dienstes. Hat Google so etwas? Wenn Sie weitere kostenlose oder kostenpflichtige API kennen, die von seiner IP-Position Benutzer helfen, die bestimmen - bitte mich

THanks wissen lassen

+1

Holen Stadt/Land von IP: [Deine Stadt] (https://ipapi.co/city /), [Ihr Land] (https://ipapi.co/country/), [Stadt für IP 8.8.8.8] (https://ipapi.co/8.8.8.8/city/), [Land für IP 8.8.8.8] (https://ipapi.co/8.8.8.8/country/) – user4150760

+0

Es ist etwas ironisch, dass ** ipinfodb.com **, der Service, den du 2010 zurückverfolgt hast, immer noch online ist und tatsächlich funktioniert gut (habe es selbst benutzt) –

Antwort

7

ich http://www.hostip.info/ verwendet habe und fand wirklich gut es.

+0

Danke codaddict - lassen Sie mich das überprüfen – Gublooo

+2

Nur überprüft IP, die für 2 Jahre verwendet wird. Es ist sogar nicht in der Lage, mein Land zu finden. Nicht sicher, es ist gut für internationale Lookups ... – AlexeyVMP

+0

Ich fand, dass man http://ip-api.com/docs/api:json wirklich gut sein :) – thinklinux

5

Jede IP-Geolocation hängt von den vom ISP übermittelten Datensätzen ab. Dies wird niemals völlig zuverlässig sein, da viele ISPs den Standort ihres Büros anstelle der physischen Standorte ihrer Subnetze angeben, die sich in einer anderen Stadt oder sogar in einem anderen Land befinden können.

+0

Danke SF - Ich habe wahrscheinlich den falschen Begriff verwendet - wenn ich meinte zuverlässig - ich wollte sagen, der Service sollte schnell sein und nicht viel Ausfallzeit haben. Ich verstehe, dass wir den Standort nie zu 100% korrekt bestimmen können.Dies ist nur, um das Formular für den Benutzer vorzufüllen, die er dann ändern kann, wenn die Stadt/das Land falsch ist – Gublooo

3

In einem gewissen Sinn hat, kann man nicht sicher wissen, die Position eines Benutzer. Die Verwendung der Tipps, die Sie mit den anderen Antworten erhalten, gibt Ihnen die Geolokalisierung einer IP, aber es gibt keine Möglichkeit zu erfahren, dass diese IP-Adresse in New York nicht durch ein VPN von jemandem auf einer Geschäftsreise nach London, UK oder ob jemand einen Anonymisierungsdienst wie Tor verwendet.

+2

Danke Frank - Ich habe wahrscheinlich den falschen Begriff verwendet - wenn ich zuverlässig meinte - ich wollte sagen, der Service sollte schnell und nicht sein habe viel Ausfallzeit. Ich verstehe, dass wir den Standort nie zu 100% korrekt bestimmen können. Dies ist nur zum Vorfüllen des Formulars für den Benutzer, die er dann ändern kann, wenn die Stadt/das Land falsch ist – Gublooo

11

Betrachten geoplugin verwenden, bietet es die meisten Informationen aus einem einzigen Zeile PHP-Code, sondern erfordert eine Verbindung mit dem Server geoplugin.com für jede Anfrage (und es ist kostenlos).

Beispiele:

Json: http://www.geoplugin.net/json.gp?ip=74.125.236.174

{ 
geoplugin_request: "74.125.236.174", 
geoplugin_status: 200, 
geoplugin_city: "Mountain View", 
geoplugin_region: "CA", 
geoplugin_areaCode: "650", 
geoplugin_dmaCode: "807", 
geoplugin_countryCode: "US", 
geoplugin_countryName: "United States", 
geoplugin_continentCode: "NA", 
geoplugin_latitude: "37.419201", 
geoplugin_longitude: "-122.057404", 
geoplugin_regionCode: "CA", 
geoplugin_regionName: "California", 
geoplugin_currencyCode: "USD", 
geoplugin_currencySymbol: "$", 
geoplugin_currencySymbol_UTF8: "$", 
geoplugin_currencyConverter: 1 
} 

Xml: http://www.geoplugin.net/xml.gp?ip=74.125.236.174

<geoPlugin> 
<script/> 
<geoplugin_request>74.125.236.174</geoplugin_request> 
<geoplugin_status>200</geoplugin_status> 
<geoplugin_city>Mountain View</geoplugin_city> 
<geoplugin_region>CA</geoplugin_region> 
<geoplugin_areaCode>650</geoplugin_areaCode> 
<geoplugin_dmaCode>807</geoplugin_dmaCode> 
<geoplugin_countryCode>US</geoplugin_countryCode> 
<geoplugin_countryName>United States</geoplugin_countryName> 
<geoplugin_continentCode>NA</geoplugin_continentCode> 
<geoplugin_latitude>37.419201</geoplugin_latitude> 
<geoplugin_longitude>-122.057404</geoplugin_longitude> 
<geoplugin_regionCode>CA</geoplugin_regionCode> 
<geoplugin_regionName>California</geoplugin_regionName> 
<geoplugin_currencyCode>USD</geoplugin_currencyCode> 
<geoplugin_currencySymbol>&#36;</geoplugin_currencySymbol> 
<geoplugin_currencySymbol_UTF8>$</geoplugin_currencySymbol_UTF8> 
<geoplugin_currencyConverter>1</geoplugin_currencyConverter> 
</geoPlugin> 

Andere Optionen

+0

Das einzige Problem ist, dass es eine Einschränkung hat. Außerdem können Sie gesperrt werden. – Yusuf

4

Hat Google so etwas?

Nein, Google bietet keinen ähnlichen Dienst an. (Beachten Sie, dass die Antwort hier, die behauptet, dass sie es liefert, ins Nirgendwo führt).

Alle anderen Free oder API bezahlt, die Lage des bestimmen

von seine IP-Benutzer helfen

Zunächst einmal ist es schwer, über die Zuverlässigkeit eines solchen Service zu sprechen ist. Die meisten Dienste verlassen sich auf ISP, um ihre Daten zu erhalten, und der ISP liefert nicht immer zuverlässige Daten. Außerdem, weil ich davon ausgehe, dass Sie sich grundsätzlich um den Standort Ihres Benutzers kümmern (und nicht um den Standort seiner IP), kann der Benutzer entscheiden, seinen Standort entweder durch VPN, Tor oder andere Anonymisierer zu verbergen.

In einigen Ihrer Kommentare, ich habe gesehen, dass durch zuverlässige Sie Betriebszeit des API-Providers bedeutet. Wenn ja, dann würde ich MaxMind's GeoIP2 empfehlen. Vor allem habe ich diese Seite für lange Zeit gesehen, sie sind ziemlich oft aktualisiert (letzte Aktualisierung 1. April 2014), außerdem, wenn Sie Angst vor Ausfallzeiten haben - können Sie download their database und nicht auf sie verlassen (auch sie sind frei).

Ein anderer Service, den ich eigentlich mag is less known and opensource (es beruht teilweise auf Daten von MaxMind). Ich habe es nur ein paar Mal benutzt, daher kann ich nicht über die Uptime sprechen, aber ich mag ihre API sehr. Es ist so einfach, dass es schwer ist, mit einfacher zu kommen:

http://www.telize.com/geoip/46.19.37.108 

oder ähnliche

http://www.telize.com/geoip/2a02:2770::21a:4aff:feb3:2ee 

geben Ihnen

{ 
"country":"Netherlands", 
"dma_code":"0", 
"timezone":"Europe\/Amsterdam", 
"area_code":"0", 
"ip":"46.19.37.108", 
"asn":"AS196752", 
"continent_code":"EU", 
"isp":"Tilaa V.O.F.", 
"longitude":5.75, 
"latitude":52.5, 
"country_code":"NL", 
"country_code3":"NLD" 
} 

Ich denke, dass diese beiden Dienste hübsch genug, um normale Informationen für Ihre Besucher zu erhalten. Aber eine wichtige Sache. Wenn Sie wirklich wissen müssen, woher Ihre Benutzer kommen - warum fragen Sie sie nicht mit html5 geolocation? Hier ist ein nice example, aber Sie können weiter gehen (fragen Sie sie, ob der Ort richtig ist und geben Sie ihnen die Möglichkeit, es zu ändern). Ich weiß, dass Sie in Ihrem Fall nur Land/Stadt brauchen, aber andere Leute werden es brauchen.


P.S. 2015 November Nun, da telize.com Geld zu verwenden, kostet, fand ich einen anderen Dienst, der zur Zeit frei ist:

https://freegeoip.net/json/45.79.8.237 
https://freegeoip.net/json/2600:3c00::f03c:91ff:fe98:c0f5 
+0

zZ benutze ich 'freegeoip.net', das Sie auch versuchen können: [geplugin.net] (http://www.geoplugin.net/json.gp?ip=20.20.20.20), kann jemandem helfen. – stom

+0

können Sie mir bestätigen, dass es einen Dienst von Google gibt, der Länder- und Ländercode einer gegebenen IP-Adresse bereitstellen kann. – Yusuf