Intereting Posts
Функция для извлечения данных от пользователя не работает Боковая панель – Тематическая схема Изменение WordPress Media Manager Как заставить WordPress отправлять электронное письмо с подтверждением / подтверждением для пользователя при регистрации Как закрепить все элементы меню предков дочерней страницы, которые НЕ отображаются в меню wpdb-> get_row () / get_results – возможно ли вернуть экземпляры объектов моего собственного класса? Какова структура поля «Лучшее изображение» в БД? Как узнать таблицу категорий WordPress в MYSQL? Настройка содержимого TinyMCE в wp_editor Как скрыть загрузку мультимедиа другими пользователями в меню «Медиа»? Как попасть в определенную позицию в wp_query? Пользовательский слизень всегда заканчивается на «-2» Найти все сообщения от post_author Создайте подпапку разработки для моего сайта WordPress Как удалить ранее установленную настройку?

Ограничение входа пользователя по IP-адресу

У меня есть веб-сайт, который необходим для входа в систему, чтобы пользователи могли просматривать веб-сайт. Я настроил одного пользователя для всех внутренних членов для просмотра веб-сайта, однако я хочу ограничить только этого пользователя конкретным IP-адресом.

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

Это возможно?

Solutions Collecting From Web of "Ограничение входа пользователя по IP-адресу"

Проверка IP-адреса во время аутентификации – только для выбранного пользователя

Вот способ подключиться к фильтру authenticate и проверить IP-адрес для данного пользователя во время аутентификации.

Пользователь может увидеть неверную ошибку IP-адреса, как показано здесь:

неверный IP-адрес

 /** * Validate IP Address During Authentication - For A Given User */ add_filter( 'authenticate', function( $user ) { // Adjust to your needs: $allowed_user_ip = '127.0.0.1'; $ip_restricted_user_id = 1; // Current user's IP address $current_user_ip = isset( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : null; // Nothing to do for valid IP address if( $current_user_ip === $allowed_user_ip ) return $user; // Nothing to do for users that are not IP restricted if( $user instanceof \WP_User && $user->ID > 0 && $ip_restricted_user_id != $user->ID ) return $user; // Add an 'Invalid IP address' error if( is_wp_error( $user ) ) $user->add( 'invalid_ip', sprintf( '<strong>%s</strong>: %s', esc_html__( 'ERROR', 'mydomain' ), esc_html__( 'IP address is invalid.', 'mydomain' ) ) ); // Create a new 'Invalid IP address' error else $user = new WP_Error( 'invalid_ip', sprintf( '<strong>%s</strong>: %s', esc_html__( 'ERROR', 'mydomain' ), esc_html__( 'IP address is invalid.', 'mydomain' ) ) ); return $user; }, 100 ); 

Здесь мы используем приоритет 100 из-за этих обратных вызовов по умолчанию:

 add_filter( 'authenticate', 'wp_authenticate_username_password', 20, 3 ); add_filter( 'authenticate', 'wp_authenticate_email_password', 20, 3 ); add_filter( 'authenticate', 'wp_authenticate_spam_check', 99 ); 

Должно быть возможно расширить это, чтобы обрабатывать группу пользователей или заданную роль пользователя.