Я работаю над проектом клиента, где ему нужен город / штат пользователя, взяв его IP-адрес.
1) он приобрел maxmind GeoIP2 Precision, но не знает, как реализовать код в php. Документация говорит, что некоторые инструкции для загрузки composer.exe, когда я скачал его, он просит меня скачать php.exe, затем после загрузки php.exe, я попытался установить composer.exe, затем он попытался установить composer.phar и дал мне это ошибка
«Некоторые настройки на вашем компьютере не позволяют Composer работать должным образом. Убедитесь, что вы исправили проблемы, перечисленные ниже, и снова запустите этот скрипт:
Расширение openssl отсутствует, что означает, что безопасная передача HTTPS невозможна. Если возможно, вы должны включить его или перекомпилировать php с —with-openssl «
Пожалуйста, предложите мне самый простой способ получить город / штат с IP-адреса, используя PHP.
Спасибо
Этот API получит информацию о вашем местоположении. Попробуй это
<?php
$ip = '168.192.0.1'; // your ip address here
$query = @unserialize(file_get_contents('http://ip-api.com/php/'.$ip));
if($query && $query['status'] == 'success')
{
echo 'Your City is ' . $query['city'];
echo '<br />';
echo 'Your State is ' . $query['region'];
echo '<br />';
echo 'Your Zipcode is ' . $query['zip'];
echo '<br />';
echo 'Your Coordinates are ' . $query['lat'] . ', ' . $query['lon'];
}
?>
Вот результаты, которые вы можете использовать. Позвоните им, используя ключ;
<?php
array (
'status' => 'success',
'country' => 'COUNTRY',
'countryCode' => 'COUNTRY CODE',
'region' => 'REGION CODE',
'regionName' => 'REGION NAME',
'city' => 'CITY',
'zip' => 'ZIP CODE',
'lat' => 'LATITUDE',
'lon' => 'LONGITUDE',
'timezone' => 'TIME ZONE',
'isp' => 'ISP NAME',
'org' => 'ORGANIZATION NAME',
'as' => 'AS NUMBER / NAME',
'query' => 'IP ADDRESS USED FOR QUERY',
);
?>
Это не будет надежно для мобильных устройств. Если вы находитесь на мобильном телефоне, вы можете использовать следующий JavaScript
<script>
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
x.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
</script>
Это будет использовать встроенный в устройство GPS и получить кординаты. Затем вы можете сделать перекрестную ссылку на базу данных, заполненную шнурами. (это один из вариантов, и это то, что я делаю).
Вы можете найти городские базы данных онлайн, если вы ищете и если это то, что вы выбрали для мобильных устройств.
Других решений пока нет …