Добавление доменов в чёрный список Pi-hole из правил Adblock Plus

Поделюсь удобным скриптом, который скачивает ruadlist+easylist.txt от Adblock Plus и добавляет домены из него в черный список Pi-hole. Скрипт можно поместить в crontab и выполнять ежедневно (новые домены добавляются в правила довольно часто).

В правилах Adblock Plus содержатся не только домены, но и специальные регулярные выражения, которые Pi-hole просто не поймет. Для отсеивания таких выражений применяется скрипт на perl, найденный когда-то в reddit-сообществе pi-hole:

selectDomainNamesFromAdlist.pl
#!/usr/bin/perl -w
 
 use strict;
 
 my %hosts = (); 
 while ( <> ) { 
     if ( $_ =~ m/^\|\|([a-z][a-z0-9-_.]+\.([a-z]{2,3}))\^\s*$/ ) { 
         $hosts{$1} = 1;
     }   
 }
 
 foreach my $host ( sort keys %hosts ) { 
     print( "$host\n" );
 }

Этот perl-скрипт должен лежать в одной директории со скриптом ниже.

Скрип создания списка блокировки и размещения его на web-сервере Pi-hole:

#!/bin/sh
 
#get AdList
LST="$(curl --silent --insecure -4 https://easylist-downloads.adblockplus.org/ruadlist+easylist.txt)"
 
#get domains from AdList
echo "$LST" | "$(dirname $0)/selectDomainNamesFromAdlist.pl" | grep -v '^$' | sort -u > '/var/www/html/pihole/ruadlist_easylist.txt'
 
#в настройках Pi-hole список можно будет добавить так: http://pi.hole/pihole/ruadlist_easylist.txt
#(проверьте предварительно, что он доступен через web)

Заключение

У Adblock Plus много разных наборов правил для разных языков, со всеми можно ознакомиться здесь: https://adblockplus.org/ru/subscriptions

Кроме того, без всякой предварительной обработки в настройки Pi-hole можно добавить список блокировки от AdGuard: https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts;showintro=0&useip=0.0.0.0

Только авторизованные участники могут оставлять комментарии.
pi-hole/domains_from_adblockplus.txt · Последнее изменение: 2023/10/10 18:05 — 127.0.0.1
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki