Intereting Posts
крюк действия, когда сообщение достигает определенного количества просмотров Изменение запроса по дате из месяца Что такое хороший ресурс, чтобы узнать о создании пользовательских ходунков? Как показать изображение с помощью короткого кода Rewrite rule, чтобы преффицировать две переменные $ _GET, в то время как в новой конечной точке со страницы Как добавить список тегов? Простой текстовый редактор в текстовом виджете? Как вставлять скрипты в порядке раздела Head Получить всех пользователей из базы данных wordpress через REST / JSON API Неустранимая ошибка: Недостаточно памяти На главной странице отображается URL-адрес после перехода на другой сервер Добавить пользовательскую кнопку короткого кода в редактор Изменение Genesis <title> Тег с шаблона страницы Как изменить сопутствующие продукты image thumbnail Woocommerce? Не удается получить доступ к установке WordPress в поддиректории сайта drupal

Ограничение входа пользователя по 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 ); 

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