Ad blocking

From DD-WRT Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 16:00, 30 April 2010 (edit)
Glenn (Talk | contribs)
(catchg)
← Previous diff
Revision as of 14:45, 24 October 2010 (edit) (undo)
Lamelogin (Talk | contribs)

Next diff →
Line 6: Line 6:
<code> <code>
<pre> <pre>
-logger WAN UP Script Executing +#!/bin/sh
-sleep 5 + 
-test -s /tmp/dlhosts +logger WAN up script executing
-if [ $? == 1 ] ; then +sleep 5
-echo -e "#!/bin/sh\nwget -O - http://www.mvps.org/winhelp2002/hosts.txt | grep 127.0.0.1 | sed -e '2,\$s/127.0.0.1/0.0.0.0/g' -e 's/[[:space:]]*#.*$//' > /tmp/hosts\nlogger DOWNLOADED http://www.mvps.org/winhelp2002/hosts.txt\nkillall -1 dnsmasq" > /tmp/dlhosts +if test ! -s /tmp/dlhosts
-chmod 777 /tmp/dlhosts +then
-/tmp/dlhosts + cat >/tmp/dlhosts <<"EOF"
-fi +#!/bin/sh
-ln -s /tmp/hosts /etc/hosts +logger Downloading http://www.mvps.org/winhelp2002/hosts.txt
-echo "45 23 * * 5 root /tmp/dlhosts" >> /tmp/crontab +wget -O - http://www.mvps.org/winhelp2002/hosts.txt |
 + grep 127.0.0.1 |
 + sed '2,$s/127.0.0.1/0.0.0.0/g; s/[[:space:]]*#.*$//g;' |
 + grep -v localhost |
 + 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
 +EOF
 + chmod 777 /tmp/dlhosts
 + /tmp/dlhosts
 +fi
 +grep -q '/tmp/dlhosts' /tmp/crontab ||
 + echo "45 23 * * 5 root /tmp/dlhosts" >>/tmp/crontab
 + 
</pre></code> </pre></code>

Revision as of 14:45, 24 October 2010

This script, courtesy of several people on the forums, who probably should be named, will enable host-based ad blocking; I tested this on my WRT54GS v4 and WRT54GL v1.0 both running dd-wrt RC5 std.


Current uptime is 11 days, memory hovers around 700kb free (14108 avail), was approximately 2000kb free before the script:

#!/bin/sh

logger WAN up script executing
sleep 5
if test ! -s /tmp/dlhosts
then
	cat >/tmp/dlhosts <<"EOF"
#!/bin/sh
logger Downloading http://www.mvps.org/winhelp2002/hosts.txt
wget -O - http://www.mvps.org/winhelp2002/hosts.txt |
	grep 127.0.0.1 |
	sed '2,$s/127.0.0.1/0.0.0.0/g; s/[[:space:]]*#.*$//g;' |
	grep -v localhost |
	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
EOF
	chmod 777 /tmp/dlhosts
	/tmp/dlhosts
fi
grep -q '/tmp/dlhosts' /tmp/crontab || 
	echo "45 23 * * 5 root /tmp/dlhosts" >>/tmp/crontab


Enable DNSMasq and Local DNS in Services tab; no Additional DNSMasq options necessary.

Ensure cron is enabled.