Web Мастерская»Блог

Сообщество Web Мастеров. Тут собрано всё, чтобы написать свой первый сайт, запустить его в Интернет и поддерживать его в течении всей его работы.

Как заблокировать IP адрес пользователя в Nginx

О том, как заблокировать IP в .htaccess, я рассказывал: Как заблокировать IP адрес пользователя в .htaccess, тут я расскажу, как заблокировать нежелательные IP адреса в Nginx, как это сделал я.

И так, у меня поселился один постоялец, крутится он на сайте круглые сутки, видимо это бот. Первые цифры IP: 141.8 - это неизменные цифры, остальные постоянно меняются. Было решено заблокировать его, для этого я открываю "etc/nginx/nginx.conf" и после: http { добавляю:
	deny 141.8.0.0/16;

Перечитываю конфигурацию Nginx командой:
nginx -s reload

Готово! Обратите внимание на то, как написан IP: 141.8.0.0/16 - первые две цифры (141.8), как есть, дальше следуют нули и /16 - это говорит о том, что цифры могут быть абсолютно любыми (диапазон). Если надо заблокировать, какой то конкретный IP, например: 141.8.142.114, пишем так:
	deny 141.8.142.114;

После добавления записи, которая кого то блокирует, в моем файле: "var/www/httpd-logs/danfa.net.error.log", появляются записи...

Как заблокировать IP адрес пользователя в .htaccess

Сразу к делу! Допустим, нам необходимо заблокировать вот такой IP: xx.xx.xx.xxx, конечно, вместо иксов должны быть цифры, но в качестве пример, пойдет. Делаем так:
#User IP Banning
<Limit GET POST>
Order allow,deny
Deny from xx.xx.xx.xxx
Allow from All
</Limit>

Пример приведен с одним IP, чтобы заблокировать IP больше, просто, после строки:
Deny from xx.xx.xx.xxx

Добавляем Deny from тут IP и так каждый IP с новой строки:
#User IP Banning
<Limit GET POST>
Order allow,deny
Deny from xx.xx.xx.xxx
Deny from xx.xx.xx.xxx
Deny from xx.xx.xx.xxx
Deny from xx.xx.xx.xxx
Deny from xx.xx.xx.xxx
Allow from All
</Limit>

Если есть необходимость заблокировать все IP адреса, которые начинаются одинаково, например:
38.99.82.191
38.99.82.192
38.99.82.193

То тут необязательно писать каждый IP отдельно, достаточно написать так:

И все IP, что начинаются на 38.99.82. будут заблокированы. Обратите внимание на точку в конце, если точку убрать,...

Как проверить событие: "window.onload"

Для проверки события: window.onload можно использовать: document.readyState:
if (document.readyState == 'complete') {
	// Код JS
};
...

Как изменить ключ для объектов массива в JavaScript

Допустим, у нас есть неправильный массив (Неправильный потому что овощи перечислены, как фрукты):
var fruits = [
	{fruit: 'potato'},
	{fruit: 'carrot'},
	{fruit: 'onion'}
];

Из этого массива необходимо сделать так (Назвать вещи своими именами):
var vegetables = [
	{vegetable: 'potato'},
	{vegetable: 'carrot'},
	{vegetable: 'onion'}
];

Чтобы поправить наши данные, нам поможет метод map, чьё предназначение: создать новый массив с результатом вызова указанной функции для всех элементов массива. Делаем так:
var vegetables = fruits.map(data => ({vegetable: data.fruit}));

И теперь у нас массив, который и хотели получить....

Как соединить два массива в один в JavaScript

Для соединения двух массивов будем использовать метод concat(), чьё предназначение: Вернуть новый массив, состоящий из массива, котором он был вызван, соединённого с другими массивом.

Допустим у нас есть два массива:
const first  = [1, 2, 3];
const second = [4, 5, 6];

Делаем так:
const common = first.concat(second);

Теперь common содержит в себе массив, состоящий из двух массивов:
[1, 2, 3, 4, 5, 6]
...