Как получить название страны из IP-адреса пользователя
У меня есть IP-адреса пользователя, я получаю название страны базы пользователей по IP-адресу пользователя, как это возможно в php?
function get_client_ip() {
$ipaddress = '';
if (getenv('HTTP_CLIENT_IP'))
$ipaddress = getenv('HTTP_CLIENT_IP');
else if(getenv('HTTP_X_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_X_FORWARDED_FOR');
else if(getenv('HTTP_X_FORWARDED'))
$ipaddress = getenv('HTTP_X_FORWARDED');
else if(getenv('HTTP_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_FORWARDED_FOR');
else if(getenv('HTTP_FORWARDED'))
$ipaddress = getenv('HTTP_FORWARDED');
else if(getenv('REMOTE_ADDR'))
$ipaddress = getenv('REMOTE_ADDR');
else
$ipaddress = 'UNKNOWN';
return $ipaddress;
}
5 ответов
Попробуй это
function ip_details($IPaddress)
{
$json = file_get_contents("http://ipinfo.io/{$IPaddress}");
$details = json_decode($json);
return $details;
}
$IPaddress = 'Your ip address of user';
$details = ip_details("$IPaddress");
//echo $details->city;
echo $details->country;
//echo $details->org;
//echo $details->hostname;
Используйте apinotes external api геолокации
Пример:
http://apinotes.com/ipaddress/ip.php?ip=27.62.184.235
URL: http://apinotes.com/ipaddress/ip.php
Parameter Name: ip
Value: 27.62.184.23 (ipv4 address)
Вывод: -
Здесь мы отображаем детали IP-адреса в формате запроса Json.
{
"status":"success",
"ip":"27.62.184.23",
"country_name":"India",
"country_code":"IN",
"country_code3":"IND",
"region_code":"16",
"region_name":"Maharashtra",
"city_name":"Mumbai",
"latitude":18.975,
"longitude":72.8258
}
Получить текущее название страны и долгое значение широты страны:
$IPaddress = !empty($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
$details = $this->ip_details("$IPaddress");
$country_name = $details->country_name;
$geocode_stats = file_get_contents("http://maps.googleapis.com/maps/api/geocode/json?address=$country_name&sensor=false");
$output_deals = json_decode($geocode_stats);
$latLng = $output_deals->results[0]->geometry->location;
echo $lat = $latLng->lat;
echo $lng = $latLng->lng;
Для получения IP-адреса вы можете использовать предоставленную вами функцию или просто использовать
$ _SERVER [ ' REMOTE_ADDR ']
Чтобы получить IP-адрес пользователя, используйте следующее:
$ip = $_SERVER['REMOTE_ADDR']; // ip = 8.8.8.8
$country = file_get_contents('http://ipinfo.io/8.8.8.8/country'); // for more info visit [enter link description here][1]
echo $country; // output = US | UK | IN as per ip (just one country code)
Вы можете сделать это, включая валюту:
<?
function resolveIP($ip) {
$string = file_get_contents("https://ipsidekick.com/{$ip}");
$json = json_decode($string);
return $json;
}
$ip = '17.142.160.59';
$json = resolveIP($ip);
echo "Country name: {$json->country->name}\n";
echo "Currency name: {$json->currency->name}\n";
echo "Public holiday: {$json->currency->holiday}\n";
?>
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.