Jaki jest najprostszy sposób na uzyskanie szerokości i długości geograficznej użytkownika z adresu ip [zamknięty]

Obecnie pytanie to nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi będą poparte faktami, referencjami lub wiedzą specjalistyczną, ale to pytanie będzie prawdopodobnie wywoływało debatę, argumenty, ankiety lub rozszerzoną dyskusję. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź Pomoc centrum dla wskazówek. Zamknięte 8 lat temu .

Zawsze potrzebuję lokalizacji użytkownika w większości projektów internetowych, nad którymi pracuję. Użyłem GeoIP Maxmind , ale wymaga to importowania ich zbioru danych i wymaga ciągłej aktualizacji. Istnieją również inne bezpłatne i płatne usługi, ale chciałem tylko czegoś prostego, co mógłbym dodać do dowolnej witryny w kwestii sekund.

Więc jest to rodzaj przynęty, ponieważ mam proste rozwiązanie, wyszczególnione poniżej, ale chciałem zobaczyć, czy ktoś jeszcze używa tej techniki i czy są jakieś lepsze rozwiązania lub czy są jakieś nieprzewidziane pułapki.

Author: John Conde, 2009-10-16

3 answers

Implementacja, z której obecnie korzystam, widziałem w kilku innych pytaniach, ale nie widziałem jej jako wybranej odpowiedzi.

Opisałem to na moim blogu thenullreference.com , ale tutaj jest w skrócie:


Zasadniczo wszystko, co musisz zrobić, to załadować skrypt API Loader Google:

<script type="text/javascript" src="http(s)://www.google.com/jsapi"></script>

Następnie masz dostęp do kilku właściwości, które dają szczegółowe informacje o lokalizacji.

Obiekt, na który chcesz spojrzeć, to google.ładowacz.ClientLocation

  • ClientLocation.szerokość geograficzna
  • ClientLocation.Długość geograficzna
  • ClientLocation.adres.miasto
  • ClientLocation.adres.państwo
  • ClientLocation.adres.country_code-ISO 3166-1 country code
  • ClientLocation.adres.region-Region specyficzny dla kraju w USA jest to stan

*Uwaga Niektóre z nich mogą być null

Aby uzyskać więcej informacji na temat tego API, sprawdź tutaj

Robi ktoś jeszcze tego używał? Czy ktoś ma coś, czego używa, co jest tak proste i lepsze? Czy istnieją problemy z takim podejściem?

Nie jestem świadomy zasięgu / dokładności tego rozwiązania, ale myślę, że Google utrzymuje go na bieżąco i jest prawdopodobnie całkiem dobry.

 10
Author: Greg Roberts,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-16 06:36:57

Użyłem wipmania darmowej usługi JSONP, nie jestem pewien co do jej dokładności, ale jest naprawdę prosta w obsłudze:

// an example using jQuery
$.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) { 
  alert('Latitude: ' + data.latitude + 
        '\nLongitude: ' + data.longitude + 
        '\nCountry: ' + data.address.country); 
});

Sprawdź uruchomiony fragment Tutaj .

 8
Author: Christian C. Salvadó,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-16 06:37:00

Używam MaxMind GeoIP City / ISP / Organization( Usługa sieciowa), to kosztuje $20 za 50,000 zapytań i jest zawsze aktualizowane (Patrz http://www.maxmind.com/app/web_services#city ). podoba mi się fakt, że nie muszę się martwić o aktualizacje bazy danych, ponieważ wszystko odbywa się tam na serwerze.

Używam PHP do wysyłania adresu IP klienta, a w zamian dostaję szerokość, długość geograficzną, a także inne przydatne, takie jak kod regionu, Miasto, Kod metropolitalny, kod obszaru, kraj, ISP i nazwa organizacji, jeśli jest znana.

 2
Author: meme,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-17 11:32:02