Forum Webscript.Ru

Программирование => Perl => Тема начата: от 05 Января 2002, 22:29:20

Название: Помогите плз, сделать защиту топа от накруток
Отправлено: от 05 Января 2002, 22:29:20
Привет всем,
может кто знает топ сайтов lspro. Хотелось бы сделать шлюз и закрыть хотя бы немного от накрутки. Схема примерно такая : юзер заходит по линку  gate.cgi?click=123 , в gate.cgi записывается его ИП в отдельный файл dataip.txt (файл с ИП , он обнуляется каждый час) , проверка на совпадение ИП, если совпадает - редирект на топ с пустой переменной click, если нет то ставим кук (кук живет 1 час) и редирект на gate2.cgi , здесь мы считываем кук (защита от кликер-программ) если кук тот что поставили вначале, то редирект на топ с click=123 иначе редирект с пустой переменной. Вот такая вот схема, ничего сложного, но в перле я не силен, на пхп осилил бы. Может кто состряпает мне эти 2 файла ?
Заранее спасибо.
Игорь
Название: Помогите плз, сделать защиту топа от накруток
Отправлено: street law от 17 Января 2002, 05:15:48
За плату я бы сделал за два часа, а мож и за час.
Название: Помогите плз, сделать защиту топа от накруток
Отправлено: AlieN от 23 Января 2002, 05:05:03
За бесплатное в падлу честно :)
А так инструкции таковы:
орываешь файл
open(DATA,"dataip.txt");
$data=;
close(DATA);
foreach(@data){if($_==$ENV{\'REMOTE_ADDR\'}){$er=1;}
}
if(!$er){ЗАПИСЫВАЕШЬ}
А ПРО КУКИ В ПАДЛУ ЧЕСТНО ПИСАТЬ
Название: Помогите плз, сделать защиту топа от накруток
Отправлено: от 28 Января 2002, 14:02:00
#Проверяем ip посетителя и не зашел ли он под прокси
if ( $ENV{HTTP_X_FORWARDED_FOR} ) {

   ## в переменную $ip записывается IP-адрес
   ## клиента, подключенного через прокси
   $ip = $ENV{HTTP_X_FORWARDED_FOR};
}
 else {

   ## в противном случае запишем в $ip
   ## удаленный IP-адрес клиента
   $ip = $ENV{REMOTE_ADDR};
}

#Открываем файл с ip на проверку

open (DATA,"$ip_file") || die "Не могу открыть файл $ip_file для чтения";
@IP_FIL=;
close (DATA);
foreach $pair (@IP_FIL)
   {
    ($ips,$time)=split(/\\|/,$pair);
if ($ip==$ips) {
if ($time==$realtime) {
        print "Content-type: text/html\\n\\n";

      print "

Вы уже проголосовали!!!

";

      print "
Ваш IP: $ip";
      exit;
  }
} }
##Ну а если его ip нет в файле, то записываем в него
#Записываем в ip файл текущее время
open (DATA,">$ip_file") || die "Не могу открыть файл $ip_file на запись";
print DATA "$ip\\|$realtime\\n";
print DATA @IP_FIL;
close (DATA);

С уважением, Сергей ( kwazar@volsu.ru )