Как найти местоположение пользователя во время посещения веб-сайта?

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

Что бы я хотел сделать, чтобы это сделать?

Ответы

Ответ 1

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

Другой вариант - попытаться использовать службы определения местоположения HTML5, например, http://html5demos.com/geo и <а2 > .

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

Ответ 6

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

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