|
|
- #!/bin/sh
- #
- # Copyright (c) 2021 Gregory L. Dietsche <Gregory.Dietsche@cuw.edu>
- # This is free software, licensed under the MIT License
- #
-
- HasIpAddressChanged() {
- # Create a sorted, unique list of addresses using DNS
- HOST_LIVE=$(nslookup "$1" | grep "Address\ [0-9]\+:" | sed -r 's/^Address [0-9]+: //' | sort | uniq -i)
-
- # Create a sorted, unique list of addresess currently in use
- HOST_SAFE=$(grep -i "^[:0-9a-f]" "$2" | sed 's/ .*//' | sort | uniq -i)
-
- # dns resolution errors / not being connected to the internet can cause this.
- if [ -z "$HOST_LIVE" ]; then
- return 1
- fi
-
- #If the lists do not match, then we want to update to match the DNS records.
- if [ "$HOST_LIVE" = "$HOST_SAFE" ]; then
- return 1 # IP has NOT changed
- fi
-
- return 0 # IP has changed
- }
-
- StartIpAddressUpdate(){
- echo Updating "$1"
- RELOAD_DNSMASQ=1
-
- #Create the new hosts file...
- cat >"$1"<<EOL
- ##########################################################################
- # **** IMPORTANT **** #
- # Do not make changes to this file instead please execute: #
- # /usr/sbin/safe-search-maintenance #
- # If this file is not working, please ensure dnsmasq is able to READ it! #
- ##########################################################################
-
- # Last Updated On: $(date)
-
- EOL
- }
-
- MakeHost(){
- for ipAddr in $HOST_LIVE
- do
- echo "$ipAddr $1"
- done
- }
-
- #################################################
- ### strict.bing.com ###
- #################################################
- HOST_FILE=/etc/safe-search/available/bing.default
- if HasIpAddressChanged strict.bing.com $HOST_FILE; then
- StartIpAddressUpdate $HOST_FILE
- MakeHost "bing.com www.bing.com">>$HOST_FILE
- fi
-
- #################################################
- ### safe.duckduckgo.com ###
- #################################################
- HOST_FILE=/etc/safe-search/available/duckduckgo.default
- if HasIpAddressChanged safe.duckduckgo.com $HOST_FILE; then
- StartIpAddressUpdate $HOST_FILE
- MakeHost "duckduckgo.com">>$HOST_FILE
- fi
-
- #################################################
- ### restrict.youtube.com ###
- #################################################
- HOST_FILE=/etc/safe-search/available/youtube.restrict
- if HasIpAddressChanged restrict.youtube.com $HOST_FILE; then
- StartIpAddressUpdate $HOST_FILE
- MakeHost "www.youtube.com m.youtube.com youtubei.googleapis.com youtube.googleapis.com www.youtube-nocookie.com">>$HOST_FILE
- fi
-
- #################################################
- ### restrictmoderate.youtube.com ###
- #################################################
- HOST_FILE=/etc/safe-search/available/youtube.restrictmoderate
- if HasIpAddressChanged restrictmoderate.youtube.com $HOST_FILE; then
- StartIpAddressUpdate $HOST_FILE
- MakeHost "www.youtube.com m.youtube.com youtubei.googleapis.com youtube.googleapis.com www.youtube-nocookie.com">>$HOST_FILE
- fi
-
- #################################################
- ### forcesafesearch.google.com ###
- ### https://www.google.com/supported_domains ###
- #################################################
- HOST_FILE=/etc/safe-search/available/google.default
- if HasIpAddressChanged forcesafesearch.google.com $HOST_FILE; then
- StartIpAddressUpdate $HOST_FILE
- cat >>"$HOST_FILE"<<EOL
- $(MakeHost "google.com")
- $(MakeHost "google.ad")
- $(MakeHost "google.ae")
- $(MakeHost "google.com.af")
- $(MakeHost "google.com.ag")
- $(MakeHost "google.com.ai")
- $(MakeHost "google.al")
- $(MakeHost "google.am")
- $(MakeHost "google.co.ao")
- $(MakeHost "google.com.ar")
- $(MakeHost "google.as")
- $(MakeHost "google.at")
- $(MakeHost "google.com.au")
- $(MakeHost "google.az")
- $(MakeHost "google.ba")
- $(MakeHost "google.com.bd")
- $(MakeHost "google.be")
- $(MakeHost "google.bf")
- $(MakeHost "google.bg")
- $(MakeHost "google.com.bh")
- $(MakeHost "google.bi")
- $(MakeHost "google.bj")
- $(MakeHost "google.com.bn")
- $(MakeHost "google.com.bo")
- $(MakeHost "google.com.br")
- $(MakeHost "google.bs")
- $(MakeHost "google.bt")
- $(MakeHost "google.co.bw")
- $(MakeHost "google.by")
- $(MakeHost "google.com.bz")
- $(MakeHost "google.ca")
- $(MakeHost "google.cd")
- $(MakeHost "google.cf")
- $(MakeHost "google.cg")
- $(MakeHost "google.ch")
- $(MakeHost "google.ci")
- $(MakeHost "google.co.ck")
- $(MakeHost "google.cl")
- $(MakeHost "google.cm")
- $(MakeHost "google.cn")
- $(MakeHost "google.com.co")
- $(MakeHost "google.co.cr")
- $(MakeHost "google.com.cu")
- $(MakeHost "google.cv")
- $(MakeHost "google.com.cy")
- $(MakeHost "google.cz")
- $(MakeHost "google.de")
- $(MakeHost "google.dj")
- $(MakeHost "google.dk")
- $(MakeHost "google.dm")
- $(MakeHost "google.com.do")
- $(MakeHost "google.dz")
- $(MakeHost "google.com.ec")
- $(MakeHost "google.ee")
- $(MakeHost "google.com.eg")
- $(MakeHost "google.es")
- $(MakeHost "google.com.et")
- $(MakeHost "google.fi")
- $(MakeHost "google.com.fj")
- $(MakeHost "google.fm")
- $(MakeHost "google.fr")
- $(MakeHost "google.ga")
- $(MakeHost "google.ge")
- $(MakeHost "google.gg")
- $(MakeHost "google.com.gh")
- $(MakeHost "google.com.gi")
- $(MakeHost "google.gl")
- $(MakeHost "google.gm")
- $(MakeHost "google.gp")
- $(MakeHost "google.gr")
- $(MakeHost "google.com.gt")
- $(MakeHost "google.gy")
- $(MakeHost "google.com.hk")
- $(MakeHost "google.hn")
- $(MakeHost "google.hr")
- $(MakeHost "google.ht")
- $(MakeHost "google.hu")
- $(MakeHost "google.co.id")
- $(MakeHost "google.ie")
- $(MakeHost "google.co.il")
- $(MakeHost "google.im")
- $(MakeHost "google.co.in")
- $(MakeHost "google.iq")
- $(MakeHost "google.is")
- $(MakeHost "google.it")
- $(MakeHost "google.je")
- $(MakeHost "google.com.jm")
- $(MakeHost "google.jo")
- $(MakeHost "google.co.jp")
- $(MakeHost "google.co.ke")
- $(MakeHost "google.com.kh")
- $(MakeHost "google.ki")
- $(MakeHost "google.kg")
- $(MakeHost "google.co.kr")
- $(MakeHost "google.com.kw")
- $(MakeHost "google.kz")
- $(MakeHost "google.la")
- $(MakeHost "google.com.lb")
- $(MakeHost "google.li")
- $(MakeHost "google.lk")
- $(MakeHost "google.co.ls")
- $(MakeHost "google.lt")
- $(MakeHost "google.lu")
- $(MakeHost "google.lv")
- $(MakeHost "google.com.ly")
- $(MakeHost "google.co.ma")
- $(MakeHost "google.md")
- $(MakeHost "google.me")
- $(MakeHost "google.mg")
- $(MakeHost "google.mk")
- $(MakeHost "google.ml")
- $(MakeHost "google.com.mm")
- $(MakeHost "google.mn")
- $(MakeHost "google.ms")
- $(MakeHost "google.com.mt")
- $(MakeHost "google.mu")
- $(MakeHost "google.mv")
- $(MakeHost "google.mw")
- $(MakeHost "google.com.mx")
- $(MakeHost "google.com.my")
- $(MakeHost "google.co.mz")
- $(MakeHost "google.com.na")
- $(MakeHost "google.com.nf")
- $(MakeHost "google.com.ng")
- $(MakeHost "google.com.ni")
- $(MakeHost "google.ne")
- $(MakeHost "google.nl")
- $(MakeHost "google.no")
- $(MakeHost "google.com.np")
- $(MakeHost "google.nr")
- $(MakeHost "google.nu")
- $(MakeHost "google.co.nz")
- $(MakeHost "google.com.om")
- $(MakeHost "google.com.pa")
- $(MakeHost "google.com.pe")
- $(MakeHost "google.com.pg")
- $(MakeHost "google.com.ph")
- $(MakeHost "google.com.pk")
- $(MakeHost "google.pl")
- $(MakeHost "google.pn")
- $(MakeHost "google.com.pr")
- $(MakeHost "google.ps")
- $(MakeHost "google.pt")
- $(MakeHost "google.com.py")
- $(MakeHost "google.com.qa")
- $(MakeHost "google.ro")
- $(MakeHost "google.ru")
- $(MakeHost "google.rw")
- $(MakeHost "google.com.sa")
- $(MakeHost "google.com.sb")
- $(MakeHost "google.sc")
- $(MakeHost "google.se")
- $(MakeHost "google.com.sg")
- $(MakeHost "google.sh")
- $(MakeHost "google.si")
- $(MakeHost "google.sk")
- $(MakeHost "google.com.sl")
- $(MakeHost "google.sn")
- $(MakeHost "google.so")
- $(MakeHost "google.sm")
- $(MakeHost "google.sr")
- $(MakeHost "google.st")
- $(MakeHost "google.com.sv")
- $(MakeHost "google.td")
- $(MakeHost "google.tg")
- $(MakeHost "google.co.th")
- $(MakeHost "google.com.tj")
- $(MakeHost "google.tk")
- $(MakeHost "google.tl")
- $(MakeHost "google.tm")
- $(MakeHost "google.tn")
- $(MakeHost "google.to")
- $(MakeHost "google.com.tr")
- $(MakeHost "google.tt")
- $(MakeHost "google.com.tw")
- $(MakeHost "google.co.tz")
- $(MakeHost "google.com.ua")
- $(MakeHost "google.co.ug")
- $(MakeHost "google.co.uk")
- $(MakeHost "google.com.uy")
- $(MakeHost "google.co.uz")
- $(MakeHost "google.com.vc")
- $(MakeHost "google.co.ve")
- $(MakeHost "google.vg")
- $(MakeHost "google.co.vi")
- $(MakeHost "google.com.vn")
- $(MakeHost "google.vu")
- $(MakeHost "google.ws")
- $(MakeHost "google.rs")
- $(MakeHost "google.co.za")
- $(MakeHost "google.co.zm")
- $(MakeHost "google.co.zw")
- $(MakeHost "google.cat")
- $(MakeHost "www.google.com")
- $(MakeHost "www.google.ad")
- $(MakeHost "www.google.ae")
- $(MakeHost "www.google.com.af")
- $(MakeHost "www.google.com.ag")
- $(MakeHost "www.google.com.ai")
- $(MakeHost "www.google.al")
- $(MakeHost "www.google.am")
- $(MakeHost "www.google.co.ao")
- $(MakeHost "www.google.com.ar")
- $(MakeHost "www.google.as")
- $(MakeHost "www.google.at")
- $(MakeHost "www.google.com.au")
- $(MakeHost "www.google.az")
- $(MakeHost "www.google.ba")
- $(MakeHost "www.google.com.bd")
- $(MakeHost "www.google.be")
- $(MakeHost "www.google.bf")
- $(MakeHost "www.google.bg")
- $(MakeHost "www.google.com.bh")
- $(MakeHost "www.google.bi")
- $(MakeHost "www.google.bj")
- $(MakeHost "www.google.com.bn")
- $(MakeHost "www.google.com.bo")
- $(MakeHost "www.google.com.br")
- $(MakeHost "www.google.bs")
- $(MakeHost "www.google.bt")
- $(MakeHost "www.google.co.bw")
- $(MakeHost "www.google.by")
- $(MakeHost "www.google.com.bz")
- $(MakeHost "www.google.ca")
- $(MakeHost "www.google.cd")
- $(MakeHost "www.google.cf")
- $(MakeHost "www.google.cg")
- $(MakeHost "www.google.ch")
- $(MakeHost "www.google.ci")
- $(MakeHost "www.google.co.ck")
- $(MakeHost "www.google.cl")
- $(MakeHost "www.google.cm")
- $(MakeHost "www.google.cn")
- $(MakeHost "www.google.com.co")
- $(MakeHost "www.google.co.cr")
- $(MakeHost "www.google.com.cu")
- $(MakeHost "www.google.cv")
- $(MakeHost "www.google.com.cy")
- $(MakeHost "www.google.cz")
- $(MakeHost "www.google.de")
- $(MakeHost "www.google.dj")
- $(MakeHost "www.google.dk")
- $(MakeHost "www.google.dm")
- $(MakeHost "www.google.com.do")
- $(MakeHost "www.google.dz")
- $(MakeHost "www.google.com.ec")
- $(MakeHost "www.google.ee")
- $(MakeHost "www.google.com.eg")
- $(MakeHost "www.google.es")
- $(MakeHost "www.google.com.et")
- $(MakeHost "www.google.fi")
- $(MakeHost "www.google.com.fj")
- $(MakeHost "www.google.fm")
- $(MakeHost "www.google.fr")
- $(MakeHost "www.google.ga")
- $(MakeHost "www.google.ge")
- $(MakeHost "www.google.gg")
- $(MakeHost "www.google.com.gh")
- $(MakeHost "www.google.com.gi")
- $(MakeHost "www.google.gl")
- $(MakeHost "www.google.gm")
- $(MakeHost "www.google.gp")
- $(MakeHost "www.google.gr")
- $(MakeHost "www.google.com.gt")
- $(MakeHost "www.google.gy")
- $(MakeHost "www.google.com.hk")
- $(MakeHost "www.google.hn")
- $(MakeHost "www.google.hr")
- $(MakeHost "www.google.ht")
- $(MakeHost "www.google.hu")
- $(MakeHost "www.google.co.id")
- $(MakeHost "www.google.ie")
- $(MakeHost "www.google.co.il")
- $(MakeHost "www.google.im")
- $(MakeHost "www.google.co.in")
- $(MakeHost "www.google.iq")
- $(MakeHost "www.google.is")
- $(MakeHost "www.google.it")
- $(MakeHost "www.google.je")
- $(MakeHost "www.google.com.jm")
- $(MakeHost "www.google.jo")
- $(MakeHost "www.google.co.jp")
- $(MakeHost "www.google.co.ke")
- $(MakeHost "www.google.com.kh")
- $(MakeHost "www.google.ki")
- $(MakeHost "www.google.kg")
- $(MakeHost "www.google.co.kr")
- $(MakeHost "www.google.com.kw")
- $(MakeHost "www.google.kz")
- $(MakeHost "www.google.la")
- $(MakeHost "www.google.com.lb")
- $(MakeHost "www.google.li")
- $(MakeHost "www.google.lk")
- $(MakeHost "www.google.co.ls")
- $(MakeHost "www.google.lt")
- $(MakeHost "www.google.lu")
- $(MakeHost "www.google.lv")
- $(MakeHost "www.google.com.ly")
- $(MakeHost "www.google.co.ma")
- $(MakeHost "www.google.md")
- $(MakeHost "www.google.me")
- $(MakeHost "www.google.mg")
- $(MakeHost "www.google.mk")
- $(MakeHost "www.google.ml")
- $(MakeHost "www.google.com.mm")
- $(MakeHost "www.google.mn")
- $(MakeHost "www.google.ms")
- $(MakeHost "www.google.com.mt")
- $(MakeHost "www.google.mu")
- $(MakeHost "www.google.mv")
- $(MakeHost "www.google.mw")
- $(MakeHost "www.google.com.mx")
- $(MakeHost "www.google.com.my")
- $(MakeHost "www.google.co.mz")
- $(MakeHost "www.google.com.na")
- $(MakeHost "www.google.com.nf")
- $(MakeHost "www.google.com.ng")
- $(MakeHost "www.google.com.ni")
- $(MakeHost "www.google.ne")
- $(MakeHost "www.google.nl")
- $(MakeHost "www.google.no")
- $(MakeHost "www.google.com.np")
- $(MakeHost "www.google.nr")
- $(MakeHost "www.google.nu")
- $(MakeHost "www.google.co.nz")
- $(MakeHost "www.google.com.om")
- $(MakeHost "www.google.com.pa")
- $(MakeHost "www.google.com.pe")
- $(MakeHost "www.google.com.pg")
- $(MakeHost "www.google.com.ph")
- $(MakeHost "www.google.com.pk")
- $(MakeHost "www.google.pl")
- $(MakeHost "www.google.pn")
- $(MakeHost "www.google.com.pr")
- $(MakeHost "www.google.ps")
- $(MakeHost "www.google.pt")
- $(MakeHost "www.google.com.py")
- $(MakeHost "www.google.com.qa")
- $(MakeHost "www.google.ro")
- $(MakeHost "www.google.ru")
- $(MakeHost "www.google.rw")
- $(MakeHost "www.google.com.sa")
- $(MakeHost "www.google.com.sb")
- $(MakeHost "www.google.sc")
- $(MakeHost "www.google.se")
- $(MakeHost "www.google.com.sg")
- $(MakeHost "www.google.sh")
- $(MakeHost "www.google.si")
- $(MakeHost "www.google.sk")
- $(MakeHost "www.google.com.sl")
- $(MakeHost "www.google.sn")
- $(MakeHost "www.google.so")
- $(MakeHost "www.google.sm")
- $(MakeHost "www.google.sr")
- $(MakeHost "www.google.st")
- $(MakeHost "www.google.com.sv")
- $(MakeHost "www.google.td")
- $(MakeHost "www.google.tg")
- $(MakeHost "www.google.co.th")
- $(MakeHost "www.google.com.tj")
- $(MakeHost "www.google.tk")
- $(MakeHost "www.google.tl")
- $(MakeHost "www.google.tm")
- $(MakeHost "www.google.tn")
- $(MakeHost "www.google.to")
- $(MakeHost "www.google.com.tr")
- $(MakeHost "www.google.tt")
- $(MakeHost "www.google.com.tw")
- $(MakeHost "www.google.co.tz")
- $(MakeHost "www.google.com.ua")
- $(MakeHost "www.google.co.ug")
- $(MakeHost "www.google.co.uk")
- $(MakeHost "www.google.com.uy")
- $(MakeHost "www.google.co.uz")
- $(MakeHost "www.google.com.vc")
- $(MakeHost "www.google.co.ve")
- $(MakeHost "www.google.vg")
- $(MakeHost "www.google.co.vi")
- $(MakeHost "www.google.com.vn")
- $(MakeHost "www.google.vu")
- $(MakeHost "www.google.ws")
- $(MakeHost "www.google.rs")
- $(MakeHost "www.google.co.za")
- $(MakeHost "www.google.co.zm")
- $(MakeHost "www.google.co.zw")
- $(MakeHost "www.google.cat")
- EOL
- fi
-
- if [ "$RELOAD_DNSMASQ" = "1" ]; then
- echo restarting dnsmasq to activate new IP addresses.
- /etc/init.d/dnsmasq restart
- fi
|