Рубрики

Как получить страну посетителя от своего IP в PHP?

Обзор. Чтобы получить информацию о стране, континенте, городе и т. Д. Посетителя, сначала нам нужно получить IP-адрес посетителя. IP-адрес можно получить с помощью суперглобального $ _SERVER в PHP. Наконец, с помощью API geoPlugin мы можем получить информацию об IP-адресе, то есть посетителя сайта.

Шаг 1: Получение IP-адреса посетителя.
$ _SERVER — это переменная PHP Superglobals, которая содержит информацию о заголовках, IP, деталях скрипта и т. Д. Такие элементы, как REMOTE_ADDR, HTTP_X_REAL_IP, HTTP_CLIENT_IP и HTTP_X_FORWARDED_FOR, могут использоваться для получения IP-адреса из этого суперглобального элемента.

Пример: этот пример получения IP-адреса посетителей.

<?php
// PHP-код для извлечения IP

  

function getVisIpAddr() {

      

    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {

        return $_SERVER['HTTP_CLIENT_IP'];

    }

    else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {

        return $_SERVER['HTTP_X_FORWARDED_FOR'];

    }

    else {

        return $_SERVER['REMOTE_ADDR'];

    }

}

  
// Сохраняем IP-адрес

$vis_ip = getVisIPAddr();

  
// Показать IP-адрес

echo $vis_ip;

   
?>

Примечание. В случае CloudFlare для получения IP-адреса может потребоваться использование таких элементов, как HTTP_X_REAL_IP.

Шаг 2. Используйте API для получения подробной информации об IPадресе посетителя. Здесь мы собираемся использовать API geoPlugin для получения подробной информации о посетителе. API доставит объект json, который может быть преобразован в переменную PHP.

<?php
// PHP код для получения страны, города,
// континент и т. д. с использованием IP-адреса

  

$ip = '52.25.109.230';

  
// Используем JSON-кодированную строку и конвертируем
// это в переменную PHP

$ipdat = @json_decode(file_get_contents(

    "http://www.geoplugin.net/json.gp?ip=" . $ip));

   

echo 'Country Name: ' . $ipdat->geoplugin_countryName . "\n";

echo 'City Name: ' . $ipdat->geoplugin_city . "\n";

echo 'Continent Name: ' . $ipdat->geoplugin_continentName . "\n";

echo 'Latitude: ' . $ipdat->geoplugin_latitude . "\n";

echo 'Longitude: ' . $ipdat->geoplugin_longitude . "\n";

echo 'Currency Symbol: ' . $ipdat->geoplugin_currencySymbol . "\n";

echo 'Currency Code: ' . $ipdat->geoplugin_currencyCode . "\n";

echo 'Timezone: ' . $ipdat->geoplugin_timezone;

   
?>

Выход:

Country Name:    United States
City Name:       Boardman
Continent Name:  North America
Latitude:        45.8491
Longitude:       -119.7143
Currency Symbol: $
Currency Code:   USD
Timezone:        America/Los_Angeles

Рекомендуемые посты:

Как получить страну посетителя от своего IP в PHP?

0.00 (0%) 0 votes