Чтобы узнать страну IP-адреса в PHP, вы можете использовать различные методы. Я предоставлю вам несколько наиболее часто используемых из них вместе с примерами кода:
Метод 1. Использование API (ip-api.com)
$ip = $_SERVER['REMOTE_ADDR'];
$api_url = "http://ip-api.com/json/{$ip}";
$response = file_get_contents($api_url);
$data = json_decode($response);
$country = $data->country;
echo $country;
Метод 2. Использование расширения GeoIP (MaxMind)
$ip = $_SERVER['REMOTE_ADDR'];
$database_file = '/path/to/GeoIP2-Country.mmdb';
$reader = new GeoIp2\Database\Reader($database_file);
$record = $reader->country($ip);
$country = $record->country->name;
echo $country;
Метод 3. Использование расширения GeoIP (устаревшая версия)
$ip = $_SERVER['REMOTE_ADDR'];
$database_file = '/path/to/GeoIP.dat';
$gi = geoip_open($database_file, GEOIP_STANDARD);
$country = geoip_country_name_by_addr($gi, $ip);
echo $country;
geoip_close($gi);
Метод 4. Использование API ipstack
$ip = $_SERVER['REMOTE_ADDR'];
$access_key = 'YOUR_ACCESS_KEY';
$api_url = "http://api.ipstack.com/{$ip}?access_key={$access_key}";
$response = file_get_contents($api_url);
$data = json_decode($response);
$country = $data->country_name;
echo $country;
Метод 5. Использование базы данных GeoLite2 (MaxMind)
$ip = $_SERVER['REMOTE_ADDR'];
$database_file = '/path/to/GeoLite2-Country.mmdb';
$reader = new GeoIp2\Database\Reader($database_file);
$record = $reader->country($ip);
$country = $record->country->name;
echo $country;
Это всего лишь несколько примеров того, как можно получить страну IP-адреса в PHP. Не забудьте заменить необходимые заполнители, такие как путь к файлам базы данных или ключи доступа, собственными значениями.