2014年9月28日日曜日

DD-WRTで広告を斬る

取り敢えず、最近目邪魔な画面を占拠するタイプの広告をブロックする。
adm.shinobi.jp、おまえのことじゃ。この左下のやつね。


最初はAccess restrictionから色々やってみたのだけど、うまくいかない。


諦めてググる。


/tmp/hosts0にブラックリストを作り、それをローカルDNS介して、0.0.0.0に割り当ててアクセスできないようにするらしい。詳細はこちら。



これを実行してみた所、提供元のブラックリストのフォーマットが変わっていたみたいでうまく動作しない。また、ブロックしたい、adm.shinobi.jpも登録されていない。なので書き換えて、
#!/bin/sh
logger WAN up script executing
if test -s /tmp/hosts0
then
        rm /tmp/hosts0
fi

logger Downloading http://www.mvps.org/winhelp2002/hosts.txt
(wget -O - http://www.mvps.org/winhelp2002/hosts.txt |
    sed '2,$s/127.0.0.1/0.0.0.0/g; s/[[:space:]]*#.*$//g;' |
    grep -v localhost ;
echo 0.0.0.0 adm.shinobi.jp;
echo 0.0.0.0 spcdnpc.i-mobile.co.jp;
echo 0.0.0.0 spdeliver.i-mobile.co.jp ) | tr ' ' '\t' |
    tr -s '\t' | tr -d '\015' | sort -u >/tmp/hosts0
grep addn-hosts /tmp/dnsmasq.conf ||
    echo "addn-hosts=/tmp/hosts0" >>/tmp/dnsmasq.conf
logger Restarting dnsmasq
killall dnsmasq
dnsmasq --conf-file=/tmp/dnsmasq.conf
として実行。echo 0.0.0.0 adm.shinobi.jpのとこに他のサイトを足せば、それもどんどん追加されます。後は元の投稿に書いてあった通り、cronに登録して終了。


サービスから、DNSMasqとLocal DNSをオンにするのを忘れないこと。

最終的にこんな画面に。左下は画像がロードされず、×だけ出てます。
上と左は、たまたま禁止されたサイトからの広告だったみたいで灰色に。
リロードしたときの広告サイト次第で表示されることもあります。
その広告が動いたりしてあまりに邪魔なら、スクリプトに追加登録します。
例えば、i-mobile.co.jpの2つはそういう理由で追加しました(笑)。

0 件のコメント:

コメントを投稿