|
@@ -0,0 +1,78 @@
|
|
|
+#!/bin/bash
|
|
|
+
|
|
|
+hosts_file=$1
|
|
|
+new_hosts_file=$2
|
|
|
+
|
|
|
+he_net="2001:470:20::2"
|
|
|
+google_a="2001:4860:4860::8888"
|
|
|
+google_b="2001:4860:4860::8888"
|
|
|
+
|
|
|
+dns=$he_net
|
|
|
+
|
|
|
+blackhole=(
|
|
|
+'10::2222'
|
|
|
+'101::1234'
|
|
|
+'21:2::2'
|
|
|
+'2123::3e12'
|
|
|
+'2001::212'
|
|
|
+'2003:ff:1:2:3:4:5fff:6'
|
|
|
+'2003:ff:1:2:3:4:5fff:7'
|
|
|
+'2003:ff:1:2:3:4:5fff:8'
|
|
|
+'2003:ff:1:2:3:4:5fff:9'
|
|
|
+'2003:ff:1:2:3:4:5fff:10'
|
|
|
+'2003:ff:1:2:3:4:5fff:11'
|
|
|
+'2003:ff:1:2:3:4:5fff:12'
|
|
|
+'2001:da8:112::21ae')
|
|
|
+
|
|
|
+num=1
|
|
|
+
|
|
|
+cat $hosts_file | while read line
|
|
|
+do
|
|
|
+{
|
|
|
+ if [[ $line == "" ]]; then
|
|
|
+ echo "" >> $new_hosts_file
|
|
|
+ continue
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [ "${line:0:2}" == "##" ]; then
|
|
|
+ echo "$line" >> $new_hosts_file
|
|
|
+ continue
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [ "${line:0:1}" == "#" ]; then
|
|
|
+ line=${line#'#'}
|
|
|
+ fi
|
|
|
+
|
|
|
+ url=$(echo "$line" | cut -d' ' -f2)
|
|
|
+
|
|
|
+ result=$(nslookup -querytype=AAAA "$url" "$dns"|grep 'AAAA address')
|
|
|
+
|
|
|
+ name=$(echo "$result"|cut -f1)
|
|
|
+ ip=$(echo "$result"|cut -d' ' -f4)
|
|
|
+
|
|
|
+ for var in "${blackhole[@]}"; do
|
|
|
+ if [[ $ip == "$var" && $ip != "" ]]; then
|
|
|
+ ip=$(nslookup -vc -querytype=AAAA "$url" "$dns"|grep 'AAAA address'|cut -d' ' -f4)
|
|
|
+ break
|
|
|
+ fi
|
|
|
+ done
|
|
|
+
|
|
|
+ if [[ $ip == "" ]]; then
|
|
|
+ echo '#'"$line" >> $new_hosts_file
|
|
|
+ continue
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [[ $name != $url && $name != "" ]]; then
|
|
|
+ url=${url}" #"${name}
|
|
|
+ fi
|
|
|
+
|
|
|
+ echo "$ip" "$url" >> $new_hosts_file
|
|
|
+
|
|
|
+ #print log
|
|
|
+ echo "$num" "$ip" "$url"
|
|
|
+ num=$((num+1))
|
|
|
+}
|
|
|
+done
|
|
|
+wait
|
|
|
+
|
|
|
+exit 0
|