zyhtar, протев (с) .htaccess нормально справляется с поставленной задачей, поддерживает регулярные выражения, и много еще чего. если запрещенных браузеров несколько, то нужно использовать флаг [OR] (ИЛИ) Пример: Примечание: по дефолту, все условия считываются с флагом "И". Я дико извиняюсь, но это бред: что проверка USER_AGENT, (здесь нужна ИМЕННО регуляра, всех заипешься вписывать), что проверка IP - ТС просил явно по диапазону a.b.xxx.xxx, а не статик, как у тебя, т.е. извлекаем октеты a и b , и определяем их принадлежность к запрещенному диапазону)
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} Mozilla/4.0 RewriteRule ^.* - [F,L] мозила как гуляла по сайту так и гуляет.
справночники и книги найти всегда можно если есть инет. Whirt естесвенно мона написать и лучше того что я накидал (* это я так просто чтобы тс ознакомился что мона сделать
Tls, а у тебя лиса случаем не 3я стоит? Там мозилла 5.0 юзер-агент, для справки. Щас я тебе дописываю уже твой скрипт))) Может и другим пригодится)
Вот держи кодес: 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>"); } } ?> Вроде все учел, если что не так в коде - поправьте. З.Ы. Надеюсь, вопросов больше нет? ======== UPD: ======== TLS, / , это спецсимвол регулярок. Попробуй экранировать его: Code: RewriteEngine On RewriteCond %{HTTP_USER_AGENT} Mozilla\/4.0 RewriteRule ^.* - [F,L] мозила как гуляла по сайту так и гуляет.
кидай на сервак, инклюдь в файлы, и юзай функцию которую написал Whirt. в поисковиках можно найти лишь 90% информации (*
ROFL одним словом))) Уже и скрипт написали тебе, пользуйся-нехочу) Короче: кладешь скрипт на сервер, прописываешь банмаски в скрипте по образцу, который я оставил в комментах, далее : в index.php твоем пишешь: Code: include("ipaddr_filter.php"); Важное замечание: Необходимо инклюдить скрипт ДО ТОГО, как будут отосланы хедеры, т.е. любая информация а-ля всякие сообщения на экран, итд. В общем, в самом верху инклюдь, и все будет ок.
ребята не работает этот код. Белый экран и Все тут что бы я ни делал. Похоже экранизация помогла. Мозила пока пропала.
Хм ну не индекс же думаю мой виноват. С ним как раз Все в порядке,сайтег пашет как миленький и Все инклюдиццо нормально. Возможно при копировани появились лишние пробелы в коде,такое бывает у меня часто. Вроде убрал лишние пробелы но тоже самое. Файл бы выложить как нить но почему то на этом форуме ни че нельзя выкладывать