@maza2k2

Как ограничить диапазоны ip по некой строке в url с помощью php?

В apache через .htaccess можно ограничить диапазоны ip по некой строке в ссылке:
RewriteCond %{QUERY_STRING} stroka_v_url [NC]
RewriteCond %{REMOTE_ADDR} !^123\.123\.(?:17[6-9]|18[0-9]|19[0-1])\.[0-9]{1,3}$
RewriteCond %{REMOTE_ADDR} !^222\.222\.(?:6[4-9]|7[0-9]|8[0-9]|9[0-5])\.[0-9]{1,3}$
RewriteRule ^.*$ - [F]
ErrorDocument 403 /block.html

Расшифровка:
Разрешать отправлять запрос со строкой в url "stroka_v_url"
Диапазоны
123.123.176.0-123.123.191.255
222.222.64.0-222.222.95.255
Иначе перенаправлять на block.html

Необходимо реализовать то же самое, но только с помощью PHP.
Кто нибудь встречался с такой проблемой ? Или может кто нибудь знает решение ?
  • Вопрос задан
  • 130 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Arik
RewriteCond %{QUERY_STRING} stroka_v_url [NC]
$_SERVER['QUERY_STRING']

RewriteCond %{REMOTE_ADDR} !^123\.123\.(?:17[6-9]|18[0-9]|19[0-1])\.[0-9]{1,3}$ $_SERVER['REMOTE_ADDR']
и
!preg_match(/^123\.123\.(?:17[6-9]|18[0-9]|19[0-1])\.[0-9]{1,3}$/)


RewriteCond %{REMOTE_ADDR} !^222\.222\.(?:6[4-9]|7[0-9]|8[0-9]|9[0-5])\.[0-9]{1,3}$
- выше

RewriteRule ^.*$ - [F]
ErrorDocument 403 /block.html
можно
echo file_get_contents('/block.html'); exit;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы