Adblock Script

hakerdefo

As reported here,
http://vsido.org/index.php?topic=752.msg8424#msg8424

and here,
http://vsido.org/index.php?topic=752.msg8447#msg8447

It seems AdBlock is going astray. Here is a simpler and system wide alternative to AdBlock. Just save this bash script somewhere in your path, Give it 'Execute' permission, Run it and follow simple instruction given by the script. That's it. You will have a system wide, Cross browser adblocker deployed. And yes don't forget to run the script once a week to keep the database updated.


#!/bin/bash

# If this is our first run, save a copy of the system's original hosts file and set to read-only for safety
if [ ! -f ~/.hosts-system ]
then
echo "Saving copy of system's original hosts file..."
cp /etc/hosts ~/.hosts-system
chmod 444 ~/.hosts-system
fi

# Perform work in temporary files
temphosts1=$(mktemp)
temphosts2=$(mktemp)

# Obtain various hosts files and merge into one
echo "Downloading ad-blocking hosts files..."
wget -nv -O - http://winhelp2002.mvps.org/hosts.txt >> "$temphosts1"
wget -nv -O - http://hosts-file.net/ad_servers.asp >> "$temphosts1"
wget -nv -O - http://someonewhocares.org/hosts/hosts >> "$temphosts1"
wget -nv -O - "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext" >> "$temphosts1"

# Do some work on the file:
# 1. Remove MS-DOS carriage returns
# 2. Delete all lines that don't begin with 127.0.0.1
# 3. Delete any lines containing the word localhost because we'll obtain that from the original hosts file
# 4. Replace 127.0.0.1 with 0.0.0.0 because then we don't have to wait for the resolver to fail
# 5. Scrunch extraneous spaces separating address from name into a single tab
# 6. Delete any comments on lines
# 7. Clean up leftover trailing blanks
# Pass all this through sort with the unique flag to remove duplicates and save the result
echo "Parsing, cleaning, de-duplicating, sorting..."
sed -e 's/\r//' -e '/^127.0.0.1/!d' -e '/localhost/d' -e 's/127.0.0.1/0.0.0.0/' -e 's/ \+/\t/' -e 's/#.*$//' -e 's/[ \t]*$//' < "$temphosts1" | sort -u > "$temphosts2"

# Combine system hosts with adblocks
echo Merging with original system hosts...
echo -e "\n# Ad blocking hosts generated" "$date" | cat ~/.hosts-system - "$temphosts2" > ~/.hosts-block

# Clean up temp files and remind user to copy new file
echo "Cleaning up..."
rm "$temphosts1" "$temphosts2"
echo "Done."
echo
echo "Copy ad-blocking hosts file with this command:"
echo "sudo cp ~/.hosts-block /etc/hosts"
echo
echo "You can always restore your original hosts file with this command:"
echo "sudo cp ~/.hosts-system /etc/hosts"
echo "so don't delete that file! (It's saved read-only for your protection.)"


Cheers!!!
You Can't Always Git What You Want

VastOne

Wow, very nice How To hakerdefo

Thanks!
VSIDO      VSIDO Change Blog    

    I dev VSIDO

hakerdefo

Thanks VastOne!
Cheers!!!
You Can't Always Git What You Want

Digit

awesome.  idk how i missed this first time around.  (thnx orbea for linking).

better than just someonewhocares' hostfile.   :)