$banip = array('127.0.0.1','127.0.0.2','?27.0.0.3');
$ip = $_SERVER['REMOTE_ADDR'];
for($i=0;$i<3;$i++){
if($ip == $banip[$i]) {
echo "You are currently banned from this website, sorry!";
exit();
} else {
echo "no match";
}
}
PHP
Как написать лучше этого:
$ip=$_SERVER[REMOTE_ADDR];
$query1=mysql_query("SELECT * FROM `table` WHERE `ip`='$ip'");
$acuery1=mysql_fetch_array($query1);
if($acuery1[любое поле]! =NULL) echo 'Banned';
else 'no match';
--------
БД сэкономит тебе около 1 секунды обработки если будет много записей. SELECT выполняется 0.0006с, при 500 записях в мускуле. Прикинь 500 проходов цикла. Я думаю там в тысячи раз дольше время будет
$query1=mysql_query("SELECT * FROM `table` WHERE `ip`='$ip'");
$acuery1=mysql_fetch_array($query1);
if($acuery1[любое поле]! =NULL) echo 'Banned';
else 'no match';
--------
БД сэкономит тебе около 1 секунды обработки если будет много записей. SELECT выполняется 0.0006с, при 500 записях в мускуле. Прикинь 500 проходов цикла. Я думаю там в тысячи раз дольше время будет
Олег Маркитан
а "foreach" не нужно
Такого рода информацию надо хранить не к текстовых файлах, а в базах данных, например mysql. А вообще хештаблицы неплохо помогают в таких случаях. Без всяких циклов и за константное время. Да даже в обычном отсортированном массиве искать уже не n времени, а намного меньше log(n)
Олег Маркитан
скрипта я вашего не видела
так у моего скрипта если я его воткну в index
приоритет выполнения будет выше других для бана или нет???
сервер - Apache
так у моего скрипта если я его воткну в index
приоритет выполнения будет выше других для бана или нет???
сервер - Apache
Я бы бан по IP делал на уровне файервола.
Олег Маркитан
сервер чужой
я без админки
я без админки
$ips = array(
'127.0.0.1',
'95.150.45.24',
'120.45.21.48'
);
$client_ip = $_SERVER['REMOTE_ADDR'];
If ( in_array($client_ip, $ips) )
die (''restricted access);
echo "welcome!";
'127.0.0.1',
'95.150.45.24',
'120.45.21.48'
);
$client_ip = $_SERVER['REMOTE_ADDR'];
If ( in_array($client_ip, $ips) )
die (''restricted access);
echo "welcome!";
Посетителей сайта лучше вообще никак не банить.
Если сайт уже раскручен и популярен, как те же ответы, то можно и поиздеваться над посетителями.
Для нового сайта, где пока и так посетителей мало, модерация - это смерть. Да и неужели без нее нечего пилить на сайте?
Если сайт уже раскручен и популярен, как те же ответы, то можно и поиздеваться над посетителями.
Для нового сайта, где пока и так посетителей мало, модерация - это смерть. Да и неужели без нее нечего пилить на сайте?
Олег Маркитан
что прописать в чужой index.php чтобы apache банил определенные ip
$ips = array(
'127.0.0.1',
'95.150.45.24',
'120.45.21.48'
);
$client_ip = $_SERVER['REMOTE_ADDR'];
echo in_array($client_ip, $ips) ? 'You banned' : 'Welcome';
'127.0.0.1',
'95.150.45.24',
'120.45.21.48'
);
$client_ip = $_SERVER['REMOTE_ADDR'];
echo in_array($client_ip, $ips) ? 'You banned' : 'Welcome';
Иван Дзюба
// dont trust REMOTE_ADDR
$ipAddress = $_SERVER['REMOTE_ADDR'];
if (array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER)) {
$ipAddress = array_pop(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']));
}
$ipAddress = $_SERVER['REMOTE_ADDR'];
if (array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER)) {
$ipAddress = array_pop(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']));
}
А если атакующий пользуется elite anonymous proxy. Из-под выходит тор? У него ip динамический. Не проще Cloudflare подключить или другие фильтрующие сети и прикрыть серверу задницу нормально? А не светить IP сервера. Забаните по IP - будут флудить под новыми адресами. Ну что как дети, елки палки
Александр Чеботарь
И потом... Ну есть же iptables. Отправляйте IP в базу и потом через планировщик запускайте таск для изменения правил в фаерволле.
С помощью API для вашей фильтрующей сети IP можно на блокировку поставить, если такая возможность предоставляется. Или с реддита берите пример - делайте скрытый бан. Забавная штука. Пусть пользователь пишет сообщения, но никто их не видит. "Скрытый бан плох тем, что о нем вам никто не расскажет. Вы будете видеть свои посты, свои оценки, но вот ваши посты видеть никто не будет. Печаль. " )
С помощью API для вашей фильтрующей сети IP можно на блокировку поставить, если такая возможность предоставляется. Или с реддита берите пример - делайте скрытый бан. Забавная штука. Пусть пользователь пишет сообщения, но никто их не видит. "Скрытый бан плох тем, что о нем вам никто не расскажет. Вы будете видеть свои посты, свои оценки, но вот ваши посты видеть никто не будет. Печаль. " )
Похожие вопросы
- Реально ли написать сайт (портал) в блокноте? или без специальных программ не обойтись?
- Программисты, сколько вам нужно времени чтобы написать такой алгоритм:
- Хочу работать php программистом. Но как узнать - готов я или нет? На php же можно очень много написать, в отличие от JS.
- PHP Задача. Помогите пожалуйста. Всё написал в пояснении.
- Помогите пожалуйста написать скрипт в perfect click
- Помогите с php кодом, плиз) хотел функцию транслитерации написать, только ошибка выходит и все :(
- Ребят, как на PHP написать, при нажатии на -> переменная a ($a) увеличится на 1 (i++) ?
- Если нужно создать сайт с использованием php,то index страница должна быть написана на php?
- Как написать сайт? Мне советуют фреймворк yii Но я еще ни разу в жизни не делал сайтов, что можете посоветовать ?
- Как сделать регистрацию и авторизацию на php без mysql. Напишите пример записи