Скрипт для видалення реклами в будь-якому браузері

Трапляється, що сьогодні в Інтернеті тисячі, сотні тисяч рекламних або маркетингових сайтів, ми знаходимо всі види ... AdSense, реклама Yahoo, менш нав'язливі сайти, які продають спонсоровані публікації, реклама, яку ми знаходимо в Facebook y Twitter (насправді ви також можете включити спонсоровані твіти продаються на деяких сайтах) ... коротше, що Інтернет підривається рекламою та банерами, які багатьох не цікавлять.

Деякий час тому я говорив з вами про те, як заблокувати рекламу в Інтернеті через термінал для будь-якого браузера (без використання плагінів), він складався з (вручну) додавання рекламних сайтів до / Etc / хостів вказуючи на те, що вони знаходились на рівні 127.0.0.1, тобто коли ми відкривали сайт, браузер заходив шукати зображення Adsense на нашому комп’ютері, оскільки очевидно, що цього зображення не існувало, ну, нам нічого не показували.

Очевидно, це мало свої плюси і мінуси. По-перше, оскільки це було вручну, ми контролювали домени, які були заблоковані, але також, оскільки це було вручну, було багато інших, які, оскільки ми їх не знали, не могли їх заблокувати. У цій статті я пропоную вам написаний мною сценарій, який автоматизує процес, тобто кожен раз, коли він завантажує базу даних, що містить шпигунські програми та рекламні сайти, і додає ці сайти до наших / etc / hosts, таким чином браузер шукає рекламу на веб-сервері на нашому комп’ютері ... веб-сервері, який, оскільки його не існує (а якщо він і існує, немає рекламних фото / банерів), ми просто не побачимо цих надокучливих оголошень.

У будь-якому випадку, ось кроки:

1. Ми завантажуємо сценарій і надаємо йому дозволи на виконання:

cd $HOME

wget http://ftp.desdelinux.net/anti-ads.sh

chmod +x anti-ads.sh

2. Тоді давайте відредагуємо наш / etc / crontab так, щоб сценарій запускався щомісяця, наприклад, 1-го числа кожного місяця, він мав би виглядати так:

00 00 1 * * root /home/usuario/anti-ads.sh

3. Тепер вони повинні перезапустити свій демон cron або комп'ютер, залежно від того, що для них зручніше.

4. Готово, якщо ви хочете, ви можете почекати, поки настане день 1, або запустити сценарій самостійно (з правами root).

Я залишаю тут зміст сценарію, щоб детально пояснити його:

#! / bin / bash wget http://winhelp2002.mvps.org/hosts.txt -O /tmp/hosts.txt ls /etc/hosts.old &> / dev / null if [$? -не 0]; потім cp / etc / hosts /etc/hosts.old fi echo "127.0.0.1 localhost.localdomain localhost"> / etc / hosts echo ":: 1 localhost.localdomain localhost" >> / etc / hosts cat / tmp / hosts. txt >> / etc / hosts rm /tmp/hosts.txt вихід

Пояснимо це.

Спочатку завантажуємо файл, що містить повний список рекламних доменів, і розміщуємо його в / tmp / з назвою hosts.txt. Потім ми перевіряємо, чи існує файл /etc/hosts.old ... якщо він не існує, це означає, що цей сценарій ми запускаємо вперше, там зберігаємо (робимо копію) нашого / etc / hosts в / etc / hosts.old, оскільки завжди добре зберігати оригінал. Потім ми замінюємо весь вміст наших / etc / hosts двома стандартними рядками, які вказують, що 127.0.0.1 є localhost і навпаки. Для терміналу з файлом hosts ми копіюємо весь вміст /tmp/hosts.txt в / etc / hosts (не виключаючи інші два рядки), таким чином ми вже вказали, що рекламні домени знаходяться в 0.0.0.0 ... Давай, саме те, що ми хочемо. Потім, щоб закінчити, ми просто видаляємо /tmp/hosts.txt і все.

Кінець!

Надзвичайно простий скрипт, його можна значно покращити, перевіривши md5 завантаженого файлу, скориставшись командою diff, щоб не робити «/ etc / hosts» з нуля, а лише додавати до нього нові домени тощо. . Але, привіт, це лише ідея, перша версія, яка працює, врешті-решт, я зробив це для цього, щоб вона працювала і трохи автоматизувала процес.

Ну нічого, завдяки недолік, Едуардo та іншим за коментарі та поради в попередній статті. Цей сценарій не є новим (Конозід та CSB вже говорили мені про існування подібних) але добре, я люблю програмувати власні сценарії, обожнюю bash ... хоч іноді є рішення моєї проблеми, я волію програмувати один для себе.

У будь-якому випадку, сподіваюся, вам це було цікаво.