Чем вам мешает реклама? При текущем размере мониторов на пристойных сайтах (если не лазить по порнухе) она не наскакивает из-за границы экрана и не клянчит клик. Если же вас интересует потребление трафика то не воткнув промежуточное звено между пользователем и интернетом вы не сможете посчитать куда и сколько байтов уходит.

Но допустим вам нужно блокирование ради блокирования и удобства особого не требуется. Что вам мешает наваять скрипт который сам будет генерировать кусок конфига для bind'а?

 > cd /etc/namedb
 > cat master/empty.db

; $FreeBSD$

$TTL 3h
@ SOA @ nobody.localhost. 42 1d 12h 1w 3h
         ; Serial, Refresh, Retry, Expire, Neg. cache TTL

@       NS      @

; Silence a BIND warning
@       A       127.0.0.1
 > cat generator.awk
BEGIN{print"# generated file, please do not edit"}
{print"zone \""$1"\" { type master; file "/etc/namedb/master/empty.db\"; };"}

 > awk -f generator.awk < address.list > blocker.conf

Делов то.

А вот нифига не работает такое. Клиенту выдается вот это:
не удалось найти vkontakte.ru: Server failed
и пинг молчит, а клиентский браузер висит...
тогда как хотелось бы иметь аналог hosts:
Обмен пакетами с vkontakte.ru [127.0.0.1] с 32 байтами данных:
Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128
и клиентский браузер летает...
Может этого и нельзя совсем? Неужели нельзя никак заставить DNS глянуть сначала в hosts?

Ответить