Ad blocking
From DD-WRT Wiki
(Difference between revisions)
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 | + | #!/bin/sh |
- | sleep 5 | + | |
- | test -s /tmp/dlhosts | + | logger WAN up script executing |
- | + | sleep 5 | |
- | + | if test ! -s /tmp/dlhosts | |
- | chmod 777 /tmp/dlhosts | + | then |
- | /tmp/dlhosts | + | cat >/tmp/dlhosts <<"EOF" |
- | fi | + | #!/bin/sh |
- | + | 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.