Jeśli chcę udostępnić stronie internetowej odpowiednią treść, w jaki sposób mogę znaleźć przybliżoną lokalizację użytkownika na podstawie jego adresu IP lub informacji w nagłówku?
Jeśli chcę udostępnić stronie internetowej odpowiednią treść, w jaki sposób mogę znaleźć przybliżoną lokalizację użytkownika na podstawie jego adresu IP lub informacji w nagłówku?
Odpowiedzi:
Po pierwsze, powinieneś wiedzieć, że dokładność tych usług jest i zawsze będzie niska.
Miasto MaxMind Geolite jest bezpłatne . Jeśli to nie wystarczy, możesz uaktualnić do bardziej dokładnej wersji płatnej. Nie mogę mówić o jakości wersji płatnej, ponieważ nigdy jej nie używałem.
Jeśli podoba Ci się SQL, pobierz wersję CSV . Załaduj go do wybranej bazy danych i prześlij zapytanie.
Szybszą i zajmującą mało miejsca opcją jest pobranie binarnej wersji pliku blob tej samej bazy danych, a następnie użycie interfejsu API specyficznego dla języka z tej samej witryny w celu jej wyszukania.
Alternatywnie uznałem, że ipinfodb.com jest przydatny. Zapytanie odbywa się za pomocą prostego HTTP GET. Na przykład, aby geolokalizować stackoverflow.com, spróbuj:
http://ipinfodb.com/ip_query.php?timezone=false&ip=69.59.196.211
Zwróci to plik XML zawierający szerokość i długość geograficzną, który wygląda następująco:
<Response>
<Ip>69.59.196.211</Ip>
<Status>OK</Status>
<CountryCode>US</CountryCode>
<CountryName>United States</CountryName>
<RegionCode>41</RegionCode>
<RegionName>Oregon</RegionName>
<City>Corvallis</City>
<ZipPostalCode>97333</ZipPostalCode>
<Latitude>44.4698</Latitude>
<Longitude>-123.343</Longitude>
</Response>
Lokalizacja, którą można wywnioskować z adresu IP, nie jest zbyt wiarygodna (tzn. Czasami działa).
Jeśli chcesz mieć niezawodną lokalizację, rozważ interfejs API geolokalizacji, który jest częścią HTML5 . Należy jednak pamiętać, że nie wszystkie przeglądarki internetowe go obsługują (jeszcze).
Opcją, która skupia się na obsłudze urządzeń mobilnych, choć działa również dobrze w większości przeglądarek komputerowych (oprócz IE z mojego doświadczenia), jest pakiet Geo-Location-Javascript , który otacza wspomnianego Seana API GeoLocation HTML5. Stwierdziłem, że obsługa przeglądarki mobilnej jest dość słaba dla interfejsu API HTML5 (co nie jest zaskakujące, ponieważ wciąż jest w wersji roboczej), dlatego właśnie zdecydowałem się na ten pakiet.
Wyniki z urządzeń moblie są dość dobre w przypadku połączeń komórkowych i Wi-Fi (i GPS, jeśli urządzenie to ma). Przeglądarki komputerowe zgłaszają dość gruboziarnistą pozycję porównywalną z innymi usługami.
Możesz użyć tego adresu URL i przekazać mu adres IP. http://api.hostip.info/get_html.php?ip=84.32.32.44
Quova http://www.quova.com/ ma również usługę. Rozmawiałem z nimi wczoraj w GeoLoco. Według nich (więc weź to z odrobiną soli) mówią, że są znacznie lepsi na arenie międzynarodowej niż MaxMind. Są prawie równe w Ameryce Północnej.
Należy pamiętać, że w przypadku telefonów komórkowych adres IP prawdopodobnie zostanie przypisany do dowolnego miejsca, w którym operator ma bramę do Internetu. Możesz także spróbować użyć - http://www.loc-aid.com/, jeśli kierujesz reklamy na telefony komórkowe.
Google Analytics zapewnia podstawowe mapy i statystyki dotyczące lokalizacji odwiedzającego. Oczywiście musisz udostępnić te informacje Google ...
ipinfodb.com jest dobry, ale obecnie są offline :(
Używam tego do mojego interfejsu API . To jest świetne na moją pogodę, ale nie wiem, teraz było offline od wczoraj.
Jeśli chcesz udostępniać im treści lub reklamy na podstawie ich położenia geograficznego, nie możesz polegać na pobieraniu danych o lokalizacji z urządzenia. Nawet na telefonach komórkowych istnieje duża szansa, że mają wyłączone GPS i Wi-Fi i muszą wyrazić zgodę na udostępnienie lokalizacji.
To tak: „Hej, czy możesz mi udostępnić swoją lokalizację, abym mógł przekazać Ci treści i reklamy, które moim zdaniem są najbardziej związane z twoją lokalizacją geograficzną?” Odpowiedź: „Nie! Daj mi najlepszą treść i reklamy, które tam masz”
Jedynym sposobem na znalezienie lokalizacji bez pytania ich o pozwolenie jest podanie ich adresu IP. Możesz zainstalować bazę danych na własnym serwerze i zapytać ją, aby znaleźć lokalizację adresu IP lub użyć zewnętrznego interfejsu API, który musisz zapytać i uzyskać wyniki. Korzystam z interfejsu API geolokalizacji ipgp i działa świetnie. ( http://www.ipgp.net/ip-address-geolocation-api/ )