Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Генератор запрещающего списка
Форумы портала PHP.SU » PHP » Пользовательские функции » Генератор запрещающего списка

Страниц (1): [1]
 

1. Haron - 21 Мая, 2011 - 02:44:01 - перейти к сообщению
Это скрипт, генерирующий список запрета IP-адресов, являющихся выходными нодами анонимайзера Tor. У меня список генерируется для вебсервера Nginx, но можно переделать и под Apache.

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

Скрипт предназначен для запуска по таймеру через планировщик задач, на платформах Windows Server. Конечно, подобный способ запуска php-скриптов должен быть настроен на сервере. Советую выставить промежуток запуска раз в 6 часов. (Для nginx ещё может понадобиться "мягкая" перезагрузка сервера: nginx.exe -s reload, а всё это - пихнуть в батник, который и запускать планировщиком).

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

В переменной $ip_access - задаём полный путь до файла с правилами запрета\разрешения адресов.

PHP:
скопировать код в буфер обмена
  1. $torstat = array(
  2.     1 => 'http://torstatus.blutmagie.de/ip_list_exit.php',
  3.     2 => 'http://torstatus.all.de/ip_list_exit.php',
  4.     3 => 'http://torstatus.asprion.org/ip_list_exit.php',
  5.     4 => 'http://torstatus.rueckgr.at/ip_list_exit.php'
  6. );
  7.  
  8. $ip_access = 'c:\server\nginx\conf\tor.ipaccess';
  9.  
  10. foreach ($torstat as $value)
  11. {
  12.     $handle = @fopen($value, 'r');
  13.     if ($handle) break;
  14. }
  15.  
  16. if (!$handle) exit;
  17.  
  18. $out = @fopen($ip_access, 'w');
  19.  
  20. if (!$out) exit;
  21.  
  22. while (!feof($handle))
  23. {
  24.     $buffer = fgets($handle, 256);
  25.     fwrite($out, "deny " . str_replace("\n", ";\n", $buffer)); // здесь можно изменить формат строк для файла доступа
  26. }
  27. fclose($handle);
  28. fclose($out);
2. EuGen - 21 Мая, 2011 - 16:06:06 - перейти к сообщению
Идея полезная.
Увы, всевозможные веб-прокси, анонимайзеры и прочее это не увидит. Хотя в любом случае кому надо - сделают.
3. Psog - 16 Июня, 2011 - 10:24:18 - перейти к сообщению
няпатуй

 

Powered by ExBB FM 1.0 RC1