Я ищу хорошую службу геолокации PHP, поэтому, когда я запускаю приложение, у меня может быть что-то вроде:
<?php $service = new GeoLocService(); echo $service->getLat(); echo $service->getLng(); ?>
для получения позиции пользователя в значениях широты и логарифма.
Географическое местоположение должно быть выполнено в браузере, поскольку сервер (т. Е. PHP) никогда не узнает большинство соответствующих данных. Основным API для выполнения геолокации в браузере является Google, но вам, как разработчику, не нужно будет использовать этот API; вы должны использовать API-интерфейс браузера, который стандартизирован (хотя он поддерживается только в нескольких браузерах).
Самая полезная информация, которую вы получите для поиска пользователя на сервере, будет их IP-адресом, которого часто бывает достаточно, чтобы найти их в ближайшем городе. Существуют базы данных IP-to-nation и IP-to-location и API, которые вы можете загрузить, чтобы помочь в этом. Некоторые из них бесплатны, но чтобы добраться до городов, вы будете платить за услугу. В зависимости от того, с кем вы столкнулись, их нужно постоянно обновлять, поскольку диапазоны IP часто перераспределяются.
API-интерфейсы на уровне браузера работают, если браузер просматривает область для точек доступа Wi-Fi. Он отправляет список точек доступа в Google, которые затем используют это для разработки Lat / Long (часто с достоверно точными результатами).
Как они это делают? Вы, возможно, помните, что Google недавно попал в неприятности для сосания данных из Wi-Fis людей? То, что они на самом деле пытались сделать, это сопоставить точки доступа Wi-Fi в мире для этой функции геолокации.
Разумеется, для этого требуется, чтобы клиент имел Wi-Fi.
Обратите внимание, что ваш браузер не дает прямого доступа к этому списку точек доступа к клиенту (например, Javascript или DOM), поэтому вы не можете публиковать его на PHP, чтобы получить местоположение с помощью этого метода через сервер; это должно быть сделано на стороне клиента.
MaxMind PHP API неплох … http://www.maxmind.com/app/php
Прочтите следующие документы по API Geo-Loacaion: http://dev.w3.org/geo/api/spec-source-v2.html
Я уверен, что вышеупомянутые документы будут очень полезны для вас.
PHP получает реальный IP-адрес, страны, город, штат, языки посетителей
Вы можете обнаружить реальный ip, гостевой прокси, языки, штат, город. Но для PHP Code вы должны загрузить исходный код PHP из Github .
<?php // Required Libraries require_once("ip.codehelper.io.php"); require_once("php_fast_cache.php"); // New Class $_ip = new ip_codehelper(); // Detect Real IP Address & Location $real_client_ip_address = $_ip->getRealIP(); $visitor_location = $_ip->getLocation($real_client_ip_address); // Output result echo $visitor_location['Country']." "; echo "<pre>"; print_r($visitor_location);
В вашем случае вы получите $ visitor_location ['RegionName'] из возвращаемого результата.