Проверка на конкретный IP адрес?
День добрый, можно ли как-нибудь организовать проверку на конкретный ip, для дальнейшего вывода определенной информации пользователю. К примеру, есть юзер с айпишником 12.223.72.223, хочу чтобы только конкретно ему выводилась некая инфа на сайте
Дополнительно:
Вставляем в нужное место записи:
if ($_SERVER['REMOTE_ADDR'] === '12.223.72.223') { echo 'Detected ip 12.223.72.223!'; } |
if ($_SERVER['REMOTE_ADDR'] === '12.223.72.223') { echo 'Detected ip 12.223.72.223!'; }
- Только не в записи, а в шаблоне или делая из этого шорткод или написав хук в файле функций или используя опасные плагины, позволяющие использовать php в контенте (не уверен что таки сейчас существуют)
- То что нужно! Спасибо огромное. А как можно чуть изменить эту функцию, чтобы выводилась информация пользователям из конкретной страны, например из Беларуси?
- jebusSus,
А как можно чуть изменить эту функцию, чтобы выводилась информация пользователям из конкретной страны, например из Беларуси?
Или или:
- Получить массив ip адресов беларуси и сравнивать с ними настоящий ip, затем принять решение о показе контента.
- Получить ответ от сервиса по определению страны по его ip, гуглить "IP Address Lookup online api", затем принять решение о показе контента.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Проверку на конкретный IP в WordPress сделать можно, но это ненадёжный способ персонализации. У пользователя может меняться IP, он может быть за NAT, VPN, мобильной сетью или прокси. Поэтому IP-проверку лучше использовать только для служебных случаев, а не как серьёзную авторизацию.
Простейший вариант:
$allowed_ip = '12.223.72.223'; $user_ip = $_SERVER['REMOTE_ADDR'] ?? ''; if ($user_ip === $allowed_ip) { echo 'Специальная информация'; }
Если сайт за Cloudflare, прокси или балансировщиком,
REMOTE_ADDRможет быть IP прокси, а не пользователя. Тогда нужно корректно получать IP из доверенного заголовка. Но нельзя слепо доверятьHTTP_X_FORWARDED_FOR, потому что его можно подделать, если сервер напрямую доступен.Для Cloudflare обычно смотрят
HTTP_CF_CONNECTING_IP, но только если запрос действительно пришёл через Cloudflare:function get_real_ip() { if (!empty($_SERVER['HTTP_CF_CONNECTING_IP'])) { return sanitize_text_field($_SERVER['HTTP_CF_CONNECTING_IP']); } return sanitize_text_field($_SERVER['REMOTE_ADDR'] ?? ''); }
Если IP несколько, храните список:
$allowed = ['12.223.72.223', '12.223.72.224']; if (in_array(get_real_ip(), $allowed, true)) { // показать блок }
Для доступа к важным данным лучше использовать пароль, роль пользователя, одноразовую ссылку, личный кабинет или capability. IP подходит для временного показа блока конкретному офису или разработчику, но не для защиты.
Итог: технически проверка делается через IP из запроса, но для безопасности и стабильности лучше привязываться к пользователю/роли, а IP использовать только как дополнительное условие.