Сейчас: 07:27:51   24-го апреля 2024 г.
UsefulScript.ruХитростиЗабанить доступ к сайту по IP
42
192

Как заблокировать доступ к сайту по IP адресу
(забанить по IP адресу)

Вебмастеру иногда бывает просто необходимо заблокировать (забанить) доступ с какого-нибудь IP адреса к своему сайту. Причины такой блокировки могут быть совершенно разнообразные: либо это может быть спам-бот, просто неугодный пользователь, или необходимо ограничить доступ к сайту некоторым странам (городам, подсетям).


Наиболее простым и эффективным способом заблокировать (забанить) доступ к сайту по IP является использование файла .htaccess.


Для этого необходимо в корневой папке Вашего сайта создать файл .htaccess (именно с названием .htaccess, а не с расширением) и прописать в нем следующие строки:

Цитата:
<Limit GET POST>
 
order allow,deny
 deny from 195.138.87.95
 allow from all
</Limit>

Все, теперь для пользователя с IP адресом 195.138.87.95 Ваш сайт не существует!


После строчки deny from 195.138.87.95 можно добавлять другие строки с другими IP адресами, например: deny from 195.138.87. - так можно забанить сразу целую подсеть, IP адреса которой начинаются с 195.138.87.


Чтобы забанить несколько IP адресов, просто добавьте необходимое количество строк, начинающихся с deny from. В результате у Вас получится что-то вроде этого:

Цитата:
<Limit GET POST>
 
order allow,deny
 deny from 195.138.87.95
 deny from 195.138.86
.
 
deny from 111.111.222.233
 allow from all
</Limit>

Надеюсь, данный пример Вам еще не раз пригодится в борьбе с неугодными IP адресами, ботами и спамерами!

Дата создания: 17:55:54 16.06.2011 г.
Дата обновления: 22:36:47 08.03.2012 г.
Посещений: 61389 раз(а).

Комментарии посетителей (57 шт.):
Владимир
5
# 3
(09:17:01  30.07.2011 г.)

С каким расширением надо создавать файл?
Строчки с другими адресами добавлять через запятую?
Ответить

Administrator
26
# 5
(21:52:05  30.07.2011 г.)

Владимир, файл должен называться именно .htaccess (без расширения).
Для каждого IP используйте новую строку.
Например:
deny from 201.201.88.88
deny from 88.88.202.202
Спасибо за Ваш вопрос, статью немного обновил.
Ответить

Аброр
-4
# 10
(18:33:57  21.09.2011 г.)

Показать сообщение
А куда создавать файл? Я чайник, но мой братишка сидит в агенте 24 часа!
Ответить

Administrator
2
# 12
(20:47:45  21.09.2011 г.)

Аброр, файл с названием .htaccess (без расширения) необходимо создать в корневой папке Вашего сайта.
Ответить

Марина
0
# 202
(10:04:30  01.07.2012 г.)

Подскажите, пожалуйста, каким образом создать файл без расширения. Что это должно быть TXT или др.? Пожалуйста, очень нужно.
Ответить

Administrator
1
# 203
(13:18:20  01.07.2012 г.)

Марина, просто переименуйте созданный Вами файл с любым расширением на .htaccess и все.
Ответить

Марина
1
# 404
(19:46:36  20.11.2012 г.)

А как быть, если я их уже забанила в .htaccess, но запросы продолжаются и грузят сервер. В логах видно, они получают ответ 403, но запросы продолжаются с завидным постоянством, видно это робот... как быть в этом случае? Есть какой-нибудь рецепт?
Ответить

Administrator
2
# 405
(21:12:46  20.11.2012 г.)

Марина, не переживайте, это нормально. Отдача сервером кода 403 не должно грузить сервер (если конечно запросов не сотни в секунду). Это ничтожно малая нагрузка в сравнении с тем, что происходит при полноценной загрузке страницы. А робот скоро уйдет.
Ответить

Алексей
0
# 425
(22:03:30  27.11.2012 г.)

А с постоянно меняющимся (динамическим) IP можно что-то придумать? У меня один посетитель заходит на сайт под разными IP в день 5-8 раз на одну и ту же страницу ровно на 15-16 секунд по прямой ссылке. Недели 2-3 назад заходил по 3-4 раза от получаса до 2 часов. Все почти без движения. Данные проверял по Яндекс Метрике. Кто посоветует, для чего это ему нужно и как от него избавиться?
Ответить

Надежда Хачатурова
0
# 524
(13:14:28  07.01.2013 г.)

Скажите, пожалуйста. Вот вчера я вписала полный IP зловредному юзеру, а IP у него динамический, и сегодня он умудрился даже комментарий написать. Правда, тот был на одобрении. Где-то прочитала, что можно только две первые группы цифр указывать в запрете. Код у меня стоял allow, deny. Не удаляя его, вставила ниже <Limit GET POST> и далее то, что требовалось. Сервер выдал ошибку. Теперь вопрос: использовать можно или один код, или другой? Или у меня второй просто мог не встать?
Ответить

Administrator
-1
# 525
(14:00:43  07.01.2013 г.)

Надежда Хачатурова, банить можно сколько угодно IP адресов и подсетей путем добавления необходимого количества строк deny from ... У Вас должно было получиться что-то вроде этого:
<Limit GET POST>
order allow,deny
allow from all
deny from 111.111.222.233
deny from 195.138.
</Limit>
Ответить

Светлана
2
# 548
(20:02:34  15.01.2013 г.)

Извините, но я не могу сохранить файл с таким расширением, система требуем указать имя файла. Как быть? Спасибо.
Ответить

Administrator
0
# 549
(20:51:04  15.01.2013 г.)

Светлана, скачайте архив по ссылке - http://usefulscript.ru/download/htaccess.zip и распакуйте его у себя.
Ответить

Марина Ивановна
2
# 672
(23:05:20  08.03.2013 г.)

У меня вопрос по deni from.
Техподдержка забанила мне пару наглых IP просто одной строчкой через интервал даже без запятой, я добавила еще четыре IP также просто с интервалом между адресами.
Потом прочитала в статье, что deni from один раз и потом IP надо через запятую. Ну добавила запятые. Все работает, заблокированные не появляются пока.
У вас после deni from только один адрес.
Интересно, все-таки как правильно или все варианты правильные?
Ответить

Administrator
0
# 673
(23:53:43  08.03.2013 г.)

Все варианты правильные и рабочие (только что сам проверил). У нас после deni from указан только один адрес потому, что нам кажется, что так удобнее работать со списком забаненных IP адресов.
Ответить

Марина Ивановна
1
# 682
(13:48:14  13.03.2013 г.)

Спасибо большое за ответ, тогда еще хочу уточнить. Правильно ли я поняла. Мне надо забанить адреса 80.239.242.0 – 80.239.243.255, я могу написать вот так:
deny from 80.239.242.
deny from 80.239.243.
Правильно?
Ответить

Administrator
0
# 683
(20:15:49  13.03.2013 г.)

Да. Все верно. Можно и так:
deny from 80.239.242, 80.239.243
Ответить

Анна
0
# 877
(13:32:54  26.05.2013 г.)

Добрый день. Подскажите, пожалуйста, как мне заблокировать доступ к своему сайту одной страны. Мне необходимо чтобы люди с этой страны не могли просматривать мой сайт. Я не "ас" в программировании, может поможете более детально разобраться.
Ответить

Administrator
0
# 879
(14:29:28  26.05.2013 г.)

Данный способ Вам поможет только в том случае, если Вы забаните все подсети страны. А так, лучше почитайте про GeoIP и iptables. Сам подсказать не смогу, т.к. наш хостинг их не поддерживает.
Ответить

Александр
-1
# 949
(10:33:52  01.07.2013 г.)

Добрый день. Подскажите, пожалуйста, как указать вот такой интервал 150.150.120.130-150.180.160.255?
Ответить

Administrator
0
# 950
(19:49:37  01.07.2013 г.)

В зависимости от того, насколько точно должен быть указан интервал IP адресов, предлагаем Вам ознакомится с нашими темами Калькулятор диапазонов IP адресов и Конвертор диапазонов IP по спецификации CIDR
Ответить

Сергей
0
# 1369
(16:53:56  24.12.2013 г.)

Скажите, а как забанить подсеть?
Например, с 203.121.99.99 по 203.121.69.170.
Ответить

Administrator
0
# 1372
(20:04:53  24.12.2013 г.)

Обратите внимание на предыдущий комментарий # 950, там имеются две ссылки на темы, в которых как раз рассказывается про диапазоны (подсети) IP адресов.
Ответить

Андрей
0
# 1518
(04:02:15  11.03.2014 г.)

Здравствуйте. Скажите, пожалуйста, если у меня сайт на вордпресс, как могу забанить?
Ответить

Administrator
0
# 1519
(20:14:12  11.03.2014 г.)

Вы можете создать в корневой папке файл .htaccess, и сделать, как описано в данной теме, но наверняка в движке Вашего сайта предусмотрены более удобные варианты работы с .htaccess.
Ответить

Новичок
0
# 1671
(15:06:05  20.05.2014 г.)

А как заблокировать IP адрес на CMS DCMS? Там уже есть такой файл, о котором вы написали. У меня не работает.
Ответить

Administrator
0
# 1674
(20:14:58  20.05.2014 г.)

.htaccess — файл дополнительной конфигурации веб-сервера Apache, а также ему подобных. Так что дело скорее всего не в CMS, а в настройках сервера. Либо Вы проверяли на локальной машине...
Ответить

Илья
0
# 1853
(16:11:43  01.09.2014 г.)

Скажите, пожалуйста. А как я могу запретить переходы не с IP, а с конкретного домена. К примеру, у меня за определенный период появилась куча подозрительных регистраций. Проверил в Аналитикс, и все они перешли с semalt.com.
Хочу просто заблокировать переходы оттуда. Это возможно?
Ответить

Administrator
0
# 1857
(20:22:08  01.09.2014 г.)

Возможно.
SetEnvIfNoCase Referer "semalt.com" bad_bot
<Limit GET POST HEAD>
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</Limit>
Ответить

Лина
0
# 1957
(20:01:33  13.10.2014 г.)

Подскажите, пожалуйста.
Этот код работает! Но, а если мне нужно два сайта запретить? Я пробовала вот так:
SetEnvIfNoCase Referer "первый сайт" bad_bot
SetEnvIfNoCase Referer "второй сайт" bad_bot
<Limit GET POST HEAD>
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</Limit>
Но, так не вышло... Как правильно? Спасибо большое за вашу статью!
Ответить

Administrator
0
# 1958
(20:50:47  13.10.2014 г.)

Странно... У меня приведенный Вами код прекрасно работает. Возможно, страничка, на которую Вы переходите, закэшировалась браузером, потому и была доступна. Попробуйте после перехода с запрещенного сайта обновить страничку, на которую перешли.
Ответить

Лина
0
# 1966
(09:28:19  15.10.2014 г.)

Спасибо за ответ, наверно, дело действительно было в этом. Пока ждала ответ, просто продублировала блок (и вставила второй сайт). Так тоже работает.
Ответить

Лина
0
# 2182
(08:47:56  12.01.2015 г.)

Здравствуйте! Вновь возникла сложность.
Вот этот код не срабатывает теперь SetEnvIfNoCase Referer "href.li" bad_bot
Обход этого метода придумали? Кэш чистила в этот раз.
Спасибо за помощь.
Ответить

Ирина
0
# 2305
(12:09:54  06.03.2015 г.)

Здравствуйте, а как заблокировать посетителя сайта, если известен только интернет провайдер и город, с которого он заходит.
Ответить

Administrator
0
# 2306
(17:30:02  06.03.2015 г.)

Нужно узнать диапазон IP адресов провайдера и забанить всю подсеть.
Ответить

Аня
0
# 2506
(14:48:52  03.06.2015 г.)

Здравствуйте, очень нужна помощь! Я прописала IP в файле .htaccess, но не могу понять почему доступ в этих IP все равно возможен? Файл находится в папке public, все команды прописала вроде. Также эти IP прописала и в фильтрах Яндекс метрики, ничего не помогает. Что не так в чем моя ошибка?
Options All -Indexes
<Limit GET POST>
Order allow, deny
Allow from all
deny from 95.24.223.0/24
deny from 95.24.0.0/14
deny from 95.28.0.0/16
</Limit>
Ответить

Administrator
0
# 2508
(22:25:34  03.06.2015 г.)

Яндекс метрика вообще не при делах и нужна для сбора статистики.
Попробуйте поместить файл .htaccess в корневую папку сайта.
Ответить

Вика
0
# 2533
(10:26:42  19.06.2015 г.)

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

Administrator
1
# 2539
(22:17:30  19.06.2015 г.)

Чтобы закрыть доступ на сайт (директорию) всем IP адресам, кроме указанных, используйте код:
order deny,allow
deny from all
allow from 192.111.222.195 192.111.222.196
Для вложенных директорий настройки будут определяться только тем файлом .htaccess, который находится в этой директории!
Ответить

олег
0
# 2756
(06:14:20  10.10.2015 г.)

Здравствуйте. Скажите, пожалуйста, если у меня сайт на вордпресс, как могу забанить?
Ответить

Administrator
0
# 2759
(15:45:50  10.10.2015 г.)

Добавьте в файл .htaccess строки как указано в данной теме или установите специальный плагин.
Ответить

Михаил
0
# 2900
(13:21:51  14.12.2015 г.)

Скажите, пожалуйста именно в корневой папке создаю файл .htaccess система мне сообщает что файл с таким названием существует уже. Как быть?
Ответить

Administrator
0
# 2902
(22:03:22  14.12.2015 г.)

В таком случае добавьте неугодные IP адреса в уже имеющийся файл .htaccess как показано в данной теме.
Ответить

Виталий
0
# 3169
(13:44:02  12.04.2016 г.)

Как заблокировать по названию провайдера\хоста?
Ответить

Екатерина
-1
# 3816
(21:23:13  06.04.2017 г.)

В каком месте в Одноклассниках создается файл .htaccess?
Открыла настройки, но нигде не могла создать новый файл.
Ответить

Administrator
0
# 3817
(22:26:03  06.04.2017 г.)

В начале данной темы сказано, что необходимо в корневой папке Вашего сайта создать файл .htaccess. Так что если Вы не владелец или администратор сайта, то у Вас ничего не выйдет.
Ответить

Лариса
0
# 3825
(13:57:00  09.04.2017 г.)

Такой вопрос: есть виртуальная площадка, на ней несколько сайтов, в каждом есть свой .htaccess, есть ли команда, позволяющая проверять черный список ip-адресов в отдельном внешнем едином файле в корне директории сразу со всех файлов .htaccess?
Ответить

vitek
0
# 3844
(14:53:49  20.04.2017 г.)

Есть ли способ закрыть доступ на сайт для скрытых IP?
Ответить

Administrator
1
# 3845
(21:31:59  20.04.2017 г.)

А что Вы подразумеваете под скрытыми IP? Если посетитель использует прокси-сервер для скрытия реального IP, то Вы можете заблокировать только IP этого прокси-сервера, т.к. реальный IP Вы не увидите.
Ответить

Юрий
0
# 4050
(01:03:19  18.08.2017 г.)

Вопрос знатокам, а есть ли возможность блокировки по мак адресу?
Ответить

Антон
0
# 4113
(15:07:08  26.10.2017 г.)

Здравствуйте, бомбят сайт с разных айпи адресов, выглядит это так:
189.5.122.75 - - [26/Oct/2017:15:00:58 +0300] "GET / HTTP/1.1" 403 692 "-" "-"
187.65.153.116 - - [26/Oct/2017:15:00:58 +0300] "GET / HTTP/1.1" 403 692 "-" "-"
179.233.201.156 - - [26/Oct/2017:15:00:58 +0300] "GET / HTTP/1.1" 403 692 "-" "-"
Как забанить это все?
Ответить

Дмитрий
0
# 4396
(16:34:38  05.01.2019 г.)

Здравствуйте. Хотел бы поинтересоваться. А можно ли как-нибудь заблокировать айпи адрес в браузере? Так как он мне сильно мешает, а своего сайта у меня нет.
Ответить

Administrator
0
# 4398
(21:45:43  05.01.2019 г.)

Да, можно при помощи внесения изменений в файл hosts в папке C:\WINDOWS\system32\drivers\etc
Ответить

Анатолий
0
# 4544
(10:43:07  12.11.2019 г.)

Добрый день. А если сайт работает через dns от cloudflare. Айпи посетителей реальные или если я добавлю айпи в бан, то я могу лишится и нормальных посетителей?
Ответить

Макс
0
# 4826
(14:07:20  25.04.2021 г.)

Там ip подменные, если хочешь узнать настоящий ip заходишь в Firewall в самом Cloudflare и видишь список со всеми ip и страницы куда заходят эти ip.
Ответить

Алексей
1
# 4475
(11:24:55  07.06.2019 г.)

Здравствуйте! А можно сайт "разрешить" для отдельных IP:
<Limit GET POST>
order allow,deny
allow from 000.000.00.00
deny from all
</Limit>
Ответить

Марина
0
# 4542
(13:39:42  08.11.2019 г.)

А как обойти запрет и продолжать пользоваться конкретным сайтом? Спасибо.
Ответить

Закрыть
Ваше имя:
341 + 15 =
Добавить комментарий:
Ваше имя:
341 + 15 =

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Посетителей онлайн: 8

Какую CMS для сайта Вы предпочитаете?