2013-02-22 25 views
6

Zauważyłem, że nowoczesna geolokalizacja oparta na html5 zawsze pyta użytkownika "czy chcesz udostępnić swoją lokalizację tej stronie?". Co jest w porządku, ale wiem, że istnieją inne sposoby na ustalenie geolokacji w ballpark bez konieczności żądania tego pozwolenia. Jeśli sobie przypominam, te usługi korzystają z baz danych IP, aby spróbować śledzić informacje o geolokalizacie i udostępnić je aplikacji internetowej.geolokalizacja bez pytania o zgodę

Tak więc, na mojej stronie chciałbym uzyskać "najlepsze domysły" na kod pocztowy użytkownika, bez prośby o geolokalizację. Jaka jest najprostsza i/lub najlepsza metoda robienia tego?

+1

Masz na myśli coś takiego [http://www.iplocation.net/](h ttp: //www.iplocation.net/). Lokalizacja może być bardzo trudna, moja jest oddalona o 100 km na komputer i ponad 1000 km na urządzenia mobilne. YMMV. – RobG

+0

Zobacz moją odpowiedź poniżej https://stackoverflow.com/a/47142775/3176550. Ipdata.co ma 10 globalnych punktów końcowych, z których każdy może obsłużyć> 800M wniosków dziennie! – Jonathan

Odpowiedz

8

Geolokalizacja IP jest mniej dokładna, ale nie potrzebujesz do tego zgody użytkownika. Interfejs API http://ipinfo.io (który jest moją usługą) czyni go niezwykle prostym. Oto przykład jQuery:

$.get("http://ipinfo.io", function(response) { 
    console.log(response.city, response.region, response.country); 
}, "jsonp"); 

Więcej informacji jest dostępnych here.

+1

Można również użyć: '', a następnie zmienna 'ipaddr' będzie twoim adresem IPv4. –

1

Użyj skryptu lokalizacji IP na zapleczu, używając zmiennych _SERVER. Jest to jedyny sposób, bez zezwolenia, ale z ogromnymi Wady: 1) nie są dokładne w ogóle 2) adres IP może zostać zmieniony przez użytkownika, jeśli używasz proxy

Ale wciąż jest to tylko jeśli nie chcesz poprosić o pozwolenie.

Albo można po prostu poprosić użytkownika o ich kod pocztowy, ponieważ chcą cię wykorzystać witrynę, mógłby równie dobrze :)

także rzucić okiem na to stanowisko: Geolocation without Prompt

+0

Ten api będzie także działał https://ip-api.io/ –

0

Z https://ipdata.co API

$.get("https://api.ipdata.co", function (response) { 
 
    $("#response").html(JSON.stringify(response, null, 4)); 
 
}, "jsonp");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<pre id="response"></pre>

Powiązane problemy