99# # ./rbl.sh details [ip1] [...] - Fetch details for all RBL entries for one or many IP addresses
1010# # ./rbl.sh count [ip1] [...] - Fetch a total count of RBL entries for many IP addresses
1111
12- RBL=rbl_list.txt
12+ DIR=$( dirname $0 )
13+ RBL=$DIR /rbl_list.txt
1314
1415function process_ip {
15- if [[ $1 == * /* ]]; then
16- echo " $( prips $1 ) "
17- else
18- echo " $1 "
19- fi
16+ if [[ $1 == * /* ]]; then
17+ echo " $( prips $1 ) "
18+ else
19+ echo " $1 "
20+ fi
2021}
2122
2223if [[ $1 == " check" ]]; then
23- dig +short +time=1 +tries=2 $2 | grep " 127.0.0."
24+ dig +short +time=1 +tries=2 $2 | grep " 127.0.0."
2425elif [[ $1 == " listcheck" ]]; then
25- RBL_C=$( cat " $RBL " | grep -v " #" )
26+ RBL_C=$( cat " $RBL " | grep -v " #" )
2627
27- while read -r var; do
28- if [[ $( dig 1.1.1.1.$var +time=1 2>&1 | grep timed | wc -l) == " 1" ]]; then
29- echo " $var timed out"
30- fi
31- done <<< " $RBL_C"
28+ while read -r var; do
29+ if [[ $( dig 1.1.1.1.$var +time=1 2>&1 | grep timed | wc -l) == " 1" ]]; then
30+ echo " $var timed out"
31+ fi
32+ done <<< " $RBL_C"
3233elif [[ $1 == " detailscheck" ]]; then
33- echo " Performing detailed lookup for $2 "
34+ echo " Performing detailed lookup for $2 "
3435
35- RBL_C=$( cat " $RBL " | grep -v " #" )
36+ RBL_C=$( cat " $RBL " | grep -v " #" )
3637 W=$( echo $2 | cut -d. -f1 )
3738 X=$( echo $2 | cut -d. -f2 )
3839 Y=$( echo $2 | cut -d. -f3 )
3940 Z=$( echo $2 | cut -d. -f4 )
4041
4142 while read -r var; do
42- CHECK=$( dig +short $Z .$Y .$X .$W .$var | grep " 127.0.0." | wc -l)
43+ CHECK=$( dig +short $Z .$Y .$X .$W .$var | grep " 127.0.0." | wc -l)
4344
44- if [[ $CHECK -gt 0 ]]; then
45- REASON=$( dig +short $Z .$Y .$X .$W .$var TXT)
46- echo " $i blacklisted on $var for: $REASON "
47- fi
45+ if [[ $CHECK -gt 0 ]]; then
46+ REASON=$( dig +short $Z .$Y .$X .$W .$var TXT)
47+ echo " $i blacklisted on $var for: $REASON "
48+ fi
4849 done <<< " $RBL_C"
4950elif [[ $1 == " details" ]]; then
50- for var_i in " ${@: 2} "
51- do
52- echo " $( process_ip $var_i ) " | parallel --max-procs 100 bash " $0 " detailscheck {}
53- done
51+
52+ for var_i in " ${@: 2} "
53+ do
54+ echo " $( process_ip $var_i ) " | parallel --max-procs 100 bash " $0 " detailscheck {}
55+ done
5456elif [[ $1 == " count" ]]; then
55- COUNT=0
56- RBL_C=$( cat " $RBL " | grep -v " #" )
57+ COUNT=0
58+ RBL_C=$( cat " $RBL " | grep -v " #" )
5759
58- for var_i in " ${@: 2} "
59- do
60- while read -r var; do
61- W=$( echo $var | cut -d. -f1 )
62- X=$( echo $var | cut -d. -f2 )
63- Y=$( echo $var | cut -d. -f3 )
64- Z=$( echo $var | cut -d. -f4 )
65- R=$( echo " $RBL_C " | sed -e " s/^/$Z .$Y .$X .$W ./g" | parallel --max-procs 100 bash " $0 " check {} | wc -l)
66- let " COUNT=R+COUNT"
67- done <<< " $(process_ip $var_i)"
68- done
69- echo $COUNT
60+ for var_i in " ${@: 2} "
61+ do
62+ while read -r var; do
63+ W=$( echo $var | cut -d. -f1 )
64+ X=$( echo $var | cut -d. -f2 )
65+ Y=$( echo $var | cut -d. -f3 )
66+ Z=$( echo $var | cut -d. -f4 )
67+ R=$( echo " $RBL_C " | sed -e " s/^/$Z .$Y .$X .$W ./g" | parallel --max-procs 100 bash " $0 " check {} | wc -l)
68+ let " COUNT=R+COUNT"
69+ done <<< " $(process_ip $var_i)"
70+ done
71+ echo $COUNT
7072else
71- echo " Usage:"
72- echo " $0 listcheck - Verify that all DNSBLS in the list are responding within a reasonable time (online)"
73- echo " $0 details [ip1] [...] - Fetch details for all RBL entries for one or many IP addresses"
74- echo " $0 count [ip1] [...] - Fetch a total count of RBL entries for many IP addresses"
75- echo " "
76- echo " IP networks in CIDR form may also be specified"
73+ echo " Usage:"
74+ echo " $0 listcheck - Verify that all DNSBLS in the list are responding within a reasonable time (online)"
75+ echo " $0 details [ip1] [...] - Fetch details for all RBL entries for one or many IP addresses"
76+ echo " $0 count [ip1] [...] - Fetch a total count of RBL entries for many IP addresses"
7777fi
0 commit comments