Каким способом можно идентифицировать не российские ip адреса?

Ссылка скопирована
PHP
13 февраля 2026 1 ответ

Каким способом можно идентифицировать не российские ip адреса если у меня нет доступа к платной базе ip адресов (платить не хочу за каждый запрос). Желательно решение на языке PHP

Дополнительно:

Насчет реализации конкретно на Php не подскажу. Однако Здесь описан общий способ идентификации IP-адреса как российского.

Ответы:

https://dev.maxmind.com/geoip/geolite2-free-geoloc...
как было бесплатным так и осталось.
Регистрация только нужна стала, а так бесплатно.

Sypex GEO, работает локально. Здесь пример, используется для определения ip/локации юзера и проброса в Метрику

поставит пакет с базой geoip и одну из привязок к яп, если такой нет, то консольный интерфейс geoip-bin

или альтернативу maxmind

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Антон С. Ответ

Для идентификации не российских IP-адресов можно использовать различные методы, в зависимости от того, какую точность и надежность вы хотите достичь. Вот несколько способов:

1. **GeoIP базы данных**: Одним из наиболее распространенных способов определения местоположения IP-адреса является использование GeoIP баз данных. Вы можете использовать такие сервисы как MaxMind GeoIP или IP2Location, чтобы определить, к какой стране принадлежит IP-адрес.

Пример использования GeoIP базы данных в PHP:

$ip = '8.8.8.8'; // Пример IP-адреса
$reader = new GeoIp2\Database\Reader('path/to/GeoLite2-Country.mmdb');
$record = $reader->country($ip);
$countryCode = $record->country->isoCode;
 
if ($countryCode !== 'RU') {
    echo 'Этот IP-адрес не принадлежит России';
}

$ip = '8.8.8.8'; // Пример IP-адреса $reader = new GeoIp2\Database\Reader('path/to/GeoLite2-Country.mmdb'); $record = $reader->country($ip); $countryCode = $record->country->isoCode; if ($countryCode !== 'RU') { echo 'Этот IP-адрес не принадлежит России'; }

2. **HTTP заголовки**: Еще одним способом является анализ HTTP заголовков запроса. Например, вы можете проверить заголовок `Accept-Language` или `Accept-Encoding`, чтобы определить язык или кодировку, которую предпочитает пользователь.

Пример использования HTTP заголовков в PHP:

if ($_SERVER['HTTP_ACCEPT_LANGUAGE'] !== 'ru-RU') {
    echo 'Этот IP-адрес не принадлежит России';
}

if ($_SERVER['HTTP_ACCEPT_LANGUAGE'] !== 'ru-RU') { echo 'Этот IP-адрес не принадлежит России'; }

3. **WHOIS запросы**: Также можно использовать WHOIS запросы для получения информации о владельце IP-адреса. Вы можете использовать библиотеки PHP для выполнения WHOIS запросов и анализа полученных данных.

Пример использования WHOIS запросов в PHP:

$ip = '8.8.8.8'; // Пример IP-адреса
$whois = new Whois();
$result = $whois->lookup($ip);
 
if (strpos($result, 'RU') === false) {
    echo 'Этот IP-адрес не принадлежит России';
}

$ip = '8.8.8.8'; // Пример IP-адреса $whois = new Whois(); $result = $whois->lookup($ip); if (strpos($result, 'RU') === false) { echo 'Этот IP-адрес не принадлежит России'; }

Это лишь несколько способов определения не российских IP-адресов. В зависимости от ваших потребностей вы можете выбрать один из этих методов или комбинировать их для достижения наилучших результатов.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно