Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Бан по ипу до определенного срока
 
 автор: MeTp   (25.02.2006 в 20:35)   письмо автору
 
 

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

   
 
 автор: cheops   (25.02.2006 в 20:54)   письмо автору
 
   для: MeTp   (25.02.2006 в 20:35)
 

Хм... проверяется содержимое элемента суперглобального массива $_SERVER['REMOTE_ADDR'] с забанненым IP-адресом, если они равны, прекращаем работу.
<?php
  
if($_SERVER['REMOTE_ADDR'] == $ip_address) exit();
?>

   
 
 автор: MeTp   (25.02.2006 в 22:31)   письмо автору
 
   для: cheops   (25.02.2006 в 20:54)
 

Ну это понятно, я имею ввиду что бы указать в скрипте дату в которую этот ип удалится из базы и пользователь сново сможет зайти на сайт.
Т.Е банить до даты которую мы указываем при самом бане:))))
думаю понятно:)

   
 
 автор: Shorr Kan   (26.02.2006 в 10:18)   письмо автору
 
   для: MeTp   (25.02.2006 в 22:31)
 


<?
$ip
=$_SERVER['REMOTE_ADDR'];
$file="ban/".$ip.".txt";
if(
file_exists($file)){
$time=file_get_contents($file);
if(
$time!="" and strtotime('now')<$time){print "Вы забанены";exit;}
}
?>


Разумеется, это подразумевает, что файлы будут содержать время завершения бана в timestamp.

   
 
 автор: MeTp   (28.02.2006 в 17:11)   письмо автору
 
   для: Shorr Kan   (26.02.2006 в 10:18)
 

Спасибо, а можно чуть-чуть по подробнее, т.е. описать работу скрипта, "Разумеется, это подразумевает, что файлы будут содержать время завершения бана в timestamp" - не очень это понял.
Новичок:)
спасибо

   
 
 автор: cheops   (28.02.2006 в 23:34)   письмо автору
 
   для: MeTp   (28.02.2006 в 17:11)
 

Shorr Kan предлагает для каждого блокируемого IP-адреса, создавать файл ban/xxx.xxx.xxx.xxx.txt, где xxx.xxx.xxx.xxx - IP-адрес, наличие такого файла будет автоматически означать, что вы прогневались на адрес. Внутри файл будет одна цифра вида 1141158697, которая будет обозначать дату, когда закончится блокировка. Цифра представляет дату в так называемом UNIXSTAMP формате - числе секунд прошедших с 1 января 1970 года - этим форматом очень любят пользоваться программисты, так как он автоматически решает все проблемы при свравнении дат, в том числе и с високосными годами и прочими неудобствами. Получить произвольную дату можно при помощи функции mktime(), текущую дату можно в этом формате можно получить при помощи функции time().

   
 
 автор: Loki   (28.02.2006 в 23:48)   письмо автору
 
   для: cheops   (28.02.2006 в 23:34)
 

предлагаю еще более быстрый вариант: проверять дату создания файла:)

   
 
 автор: cheops   (01.03.2006 в 00:01)   письмо автору
 
   для: Loki   (28.02.2006 в 23:48)
 

В общем да, но только редактировать её не очень удобно - в файл залез и выставил какой хочешь срок, а тут повозиться придётся.

   
 
 автор: Loki   (01.03.2006 в 00:10)   письмо автору
 
   для: cheops   (01.03.2006 в 00:01)
 

Можно устанавливать произвольное время последней модификации файла, если я правильно понял мануал:)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования