Как можно через .htaccess запретить вход определенным браузерам например Mozilla/4.00 и ip допустим запретить Все ip которые начинаются на 195.189.1xx.xxx?
На счет ип понятно. Но вот ты говоришь по браузеру никак... А я встречал сайты на которые с компа зайти не возможно. Возможно думаю это можно обойти,но тем не менее. На фанке именно такое используется. Может скриптом можно такое реализовать?
Или допустим мне нужно будет два юзер агента запретить или три. Как это сделать лучше. Напиши плз подробнее.
В начале скрипта читаешь в переменную это значение $user_agent=$_server['http_user_agent']; А потом ишещь вхождения нужных тебе браузеров в скрипте. Можешь сохранить в файл основные браузеры Потом разбить строку командой array explode ( string separator, string string [, int limit] ) на массив элементов и в цикле искать в переменной элементы массива - выполняя нужные тебе действия
ни че не понял. Если я сейчас впишу то что ты написал-ничего не произойдет либо будет ошибка. Хотелось бы сделать так Если можно: файл userlog.php будет содержать Браузеры которым запрещено заходить на сайт. Вписываю в в корне index.php require('../incl/userlog.php'); и Все. Запрещенные юзер агенты отдыхают. Допустим Mozilla/4.00 и Opera/7.50. но вот вся соль в том,что я не знаю че должно быть в файле userlog.php
Примеры запрета браузеров по USER-AGENT через файл .htaccess можно посмотреть здесь: _http://www.javascriptkit.com/howto/htaccess13.shtml . Все остальное (тот же блок по IP) легко реализуется через PHP. Если надо - обращайся, напишу тебе такой скриптик. ====== UPD ====== Если кому понадобиться, но лень читать весь последующий флейм/непонимание товарища TLS, вот ответы на поставленные вопросы: Блокировка по User-Agent: прописать в .htaccess Code: RewriteEngine On RewriteCond %{HTTP_USER_AGENT} Mozilla\/4.0 RewriteRule ^.* - [F,L] Блокировка диапазона по маске IP PHP: <? /* IPADDR BanMask Filter Script by Whirt __ __ __ .--.--.--.| |--.|__|.----.| |_ | | | || || || _|| _| |________||__|__||__||__| |____| [Antichat.ru] // ваши бан-маски. синтаксис приведен ниже // // XXX - все адреса диапазона текущего октета */ $banmask[] = "87.XXX.XXX.XXX"; $banmask[] = "166.66.XXX.XXX"; $banmask[] = "157.150.123.XXX"; $banmask[] = "137.112.10.17"; function check_deny($mask) { $idx = preg_match("#(.*)\.(.*)\.(.*)\.(.*)#", $mask, $ban_args); $idx = preg_match("#(.*)\.(.*)\.(.*)\.(.*)#", $_SERVER["REMOTE_ADDR"], $ip_args); for($x=1;$x<=4;$x++) { if (($ban_args[$x] == $ip_args[$x]) || $ban_args[$x] == "XXX") return "banned"; return "clear"; } } foreach ($banmask as $key) { if (check_deny($key)=="banned") { header("HTTP/1.0 403 Forbidden"); die("<html><h1>403 - Forbidden</h1>You dont have access to this server</html>"); } } ?>
TLS, открой глаза и перечитай инфу по линку который я дал. Блокировка браузеров делается через .htaccess. Я думаю даже не надо знать английский, чтобы понять примеры из линка. Фильтрацию по IP можно сделать в PHP, как я сказал выше. Алгоритм примерный я тебе щас накидаю) Я себе это представляю так: 1) Получаем REMOTE_ADDR от клиента. 2) IP адрес разбиваем на октеты (регулярным выражением, или через строковые функции, неважно), т.е. получаем 4 переменные, содержащие по октету. 3) Дальше уже колдуй со своими рулесами , как душе, угодно. UPD: Да, забыл, в случае, блокировки - выдаем посетителю хедер 403 (denied) через ф-ю Header, в ином случае пользователь спокойно входит на сайт.
1.уважаемый,мне твои линки не нужны,и рассуждать и предполагать тут тоже лишнее. Был задан конкретный вопрос,и хотелось бы получить ответ знающего человека который не будет тут фантазировать и думать,а просто тупо Даст конкретный пример такому чайнику как я. 2. Линк на ресурс который ты дал-не вижу в нем вообще смысла и не понимаю его,так Если по твоему это защита от определенных арбузеров,то че то вместо известных всему миру opera,mozilla,ie,и других не говоря уже о мобильных-я не вижу! 3. Ты считаешь Если я бы знал то,что спрашиваю-стал бы создавать тут тему? Конечно нет! Поэтому хотелось бы конкретный ответ. 4. блокировка по конкретному ip мне не нужна,так же не нужен скрипт php который будет якобы их блокировать.
по линку даны примеры блокировки по USER-AGENT'у, а что тебе мешает вписать туда свои юзерагенты, которые не хочешь пропускать ?)))) Ну, как ? , ты же сам хотел по маске фильтрить IP, вот и проверяй первые два октета и блочь , я тебе и так все по полочкам разложил, пошевели мозгами, на готовом далеко не уедешь)
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4.00 ^.* -[F,L] Так что ли? Похоже что то не так
Вот, накатал тебе .htaccess ) Code: RewriteEngine On RewriteCond %{HTTP_USER_AGENT} Firefox RewriteRule ^.* - [F,L] Не будет пускать огнелисов, а всякие ослоподобные а-ля IE входят без проблем. З.Ы. Тут очень подробно расписано, что , как и где (теперь на русском по заявкам трудящихся ))) _http://know-how.mc3.telecom.by/SintaksisModRewrite Аффтар, неужели так трудно поюзать поиск ? )))
имхо блок по юзер агенту нуно делать пхп скриптом все таки а не хтаксессом. да блок по айпишнику мона организовать на пхп. все в одном флаконе так сказать. нуно простенький скрипт накидать. что то типа: PHP: if (strstr($_SERVER['HTTP_USER_AGENT'], $user_agent) || strstr($_SERVER['REMOTE_ADDR'], "ip_address") { print "fuck u"; } или что то типа этого. если запрещеных браузеров несколько то нуно делать в цикле upd дорогой мой. нельзя быть настолько тупым. тебе реально трудно полистать пару справочников по РНР и самому написать этот скрипт да? тебе же тут норм люди нормально объяснили что нуно делать. неееет. тебе нуно все на блюдечке подавать. иди на север друг мой. строго и прямо на север (*
Самое интересное то,что подобных тут скриптов на этом форуме писали очень много-но похоже они когда питались ни кто их не проверял на работоспособность. Ни один не работает.