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.
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.
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 .
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.
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