Как найти местоположение пользователя во время посещения веб-сайта? - PullRequest
17 голосов
/ 01 апреля 2011

Итак, я хочу иметь возможность находить местоположение пользователей (даже если оно только на уровне города / поселка), когда они заходят на домашнюю страницу моего сайта. Я подумал, что это не невозможно, потому что Google, кажется, делает это, когда вы заходите на их главную страницу, похоже, что ваши результаты поиска направляются в вашу область и т. Д.

Что бы я мог изучить, чтобы быть в состоянии сделать это?

Ответы [ 6 ]

13 голосов
/ 01 апреля 2011

Вы можете использовать GeoIP службы определения местоположения, которые имеют различные уровни точности. Могут быть и другие поставщики баз данных IP-локации.

Другой вариант - попытаться использовать службы определения местоположения HTML5, например, в http://html5demos.com/geo и http://dev.w3.org/geo/api/spec-source.html.

8 голосов
/ 01 апреля 2011

Вам необходимо использовать IP-интерфейс гео / совместного размещения, такой как , этот и многие другие. Этот может похвастаться бесплатным сервисом, требующим только регистрации.

Вы также можете загружать базы данных с информацией о геокоде. Это будет работать до определенного разрешения, но БД представляет статический снимок, и реальность может значительно измениться со временем. Вот свободно доступный файл CSV , который поможет вам начать работу с локальной базой данных. Файл CSV (который немного устарел, последний раз обновлялся в августе 2009 года) содержит 59 000 записей.

1 голос
/ 04 апреля 2019

Я хотел бы добавить другое решение из-за некоторых проблем, с которыми я столкнулся.Все предыдущие ответы работают очень хорошо.Но если вы будете использовать HTML Geolocation API, вам нужно будет запросить разрешение у пользователя.IPinfo работает очень хорошо, но некоторые блокировщики рекламы, такие как ublock, блокируют попадание API со стороны клиента.

Если вы можете изменить свой диспетчер DNS на CLoudflare, тогда вы можете использовать Cloudflare IP Geolocation.Вы можете сослаться на Дон ответ здесь

1 голос
/ 01 апреля 2011

Вы можете либо а) использовать онлайн-сервис для поиска местоположения - у многих есть API, либо б) существует множество баз данных, плавающих по сети, которые вы можете скачать.В зависимости от того, какое разрешение вам нужно, вам, возможно, придется заплатить.Но разрешение страны, безусловно, доступно бесплатно.Попробуйте прибегнуть к помощи "geo ip" или подобного.

0 голосов
/ 10 декабря 2017

вы можете использовать navigator.geolocation.getCurrentPosition в HTML5.Это было бы разумно кросс-платформенным, и вы могли бы встроить его в веб-страницы, которые возвращаются в вашу базу данных. См

http://html5demos.com/geo
http://www.w3.org/TR/geolocation-API/
http://diveintohtml5.info/geolocation.html

0 голосов
/ 22 июля 2014

Если вам не нужна сверхточная точность и вы не хотите раздражать вашего пользователя предупреждением, запрашивающим у него разрешение на доступ к его местоположению, тогда вы можете использовать что-то вроде FreeGeoIP . Я написал небольшой плагин jQuery, который использует это. См. Locaternator . Поддерживает также jsonp запросов, так что вы можете использовать его с любого веб-сайта, включая статические веб-сайты html.

...