1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
#!/bin/bash
if [[ $5 == true ]]; then
whoisdatadir="whoisdata"
mkdir -p $whoisdatadir
fi
trap ctrl_c INT
function ctrl_c() {
echo -e "\e[91m---> Terminating ...\e[0m"
exit
}
#LOOK FOR WHOIS COMMAND
if ! whois_loc="$(type -p "whois")" || [ -z "$whois_loc" ]; then
echo "\e[31m---> Whois is missing, trying to install it with APT.
\e[31m---> You need sudo and APT.\e[0m"
sudo apt-get install whois
fi
if [ -n "$1" ] ; then
# .si domain: slovenia cctld, arnes registry, 100 queries per hour or ban
# .no domain: norwegian, uninett norid registry, 3000 queries per day wait till midnight
# .de domain: germany, no data of registry, 1000 queries per day or ban
# .it domain: italy, no data of registry, no data of requests per time amount
tlds=(si no de it ru co uk me us ca pw fr cc cn be)
availables=('No entries found' 'No whois information found' 'Status: free' 'Status: AVAILABLE', 'No entries found for the selected source' 'No Data Found' 'No whois information found.' 'NOT FOUND' 'No Data Found' 'Not found' 'DOMAIN NOT FOUND' 'No entries found' 'No whois information found.' 'No whois information found.' 'Status: AVAILABLE')
denieds=('Query denied' 'limit exceeded' '55000000002' 'denied', 'You have exceeded allowed connection rate', 'denied' 'denied' 'denied' 'denied' 'denied' 'denied' 'denied' 'denied' 'denied' 'denied') ## idk about .it and .co and .me and .us and .ca and .pw and .fr and .cc and .cn and .be
sleeps=(36 29 87 87 2 87 87 87 87 87 60 87 87 87 87) # idk about .me .it .uk .us .ca .fr .cc .cn .be delay between requests in seconds to prevent ban
# add your domains, you get the point
spanje=${sleeps[0]} # max sleep of sleeps will be the sleep (-;
if [[ $1 == 'all' ]]; then
for n in "${sleeps[@]}" ; do
((n > spanje)) && spanje=$n
done
# everything is already set!
else
for i in "${!tlds[@]}"; do
if [[ "${tlds[$i]}" = "$1" ]]; then
index=$i;
fi
done
if [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ] ; then
if [ -z $index ] ; then
echo -e "\e[91m$---> Terminating: no whois response values stored for this domain. Input them as arguments.\e[0m"
exit
fi
fi
if [ -n "$2" ] ; then
availables=($2)
else
availables=(${availables[$index]})
fi
if [ -n "$3" ] ; then
denieds=($3)
else
denieds=(${denieds[${index}]})
fi
if [ -n "$4" ] ; then
spanje=$4
else
spanje=${sleeps[$index]}
fi
tlds=($1)
fi
ok=true
if [ -n "$7" ] ; then
list=`cat $7`
else
list=`echo {{a..z},{0..9}}{{a..z},{0..9}}`
fi
else
echo -e "\e[93m"' /----------------------> Short domain finder Beta <-----------------------\'
echo -e "\e[93m"' /------------------> 2019 Anton Sijanec, github/AstiriL <-------------------\'
echo -e "\e[93m"'/--------> Checks all short domain names for availability using WhoIs <-------\'
echo -e "\e[93m"'\---> Usage: ./shortdomains.sh <TLD|all> [notfound-str] [querydenied-str] <---/'
echo -e "\e[93m"' \---> [delayseconds-int] [save-whois-bool] [show-whois-bool] [list-path] <--/'
echo -e "\e[93m"' \---------> Sends out a sound alert when a free domain is found <---------/'"\e[0m"
fi
if [ $ok ] ; then
tldcount=${#tlds[@]}
for (( i=0; i<$tldcount; i++ ));
do
mv freedomains.$tlds[$i] freedomains.$tlds[$i].old
echo "---> moved freedomains.$tlds[$i] to freedomains.$tlds[$i].old"
done
echo "---> Starting... Delay: "$spanje s", TLDs: "$tldcount"."
for domain in $list # do for every 2 character possibility
do
sleep $spanje
for (( i=0; i<$tldcount; i++ )); # do for every tld
do
VAL=`whois $domain.${tlds[$i]}`
while [[ $VAL == *${denieds[$i]}* ]]
do
echo -e "\e[95m$domain.${tlds[$i]} DENIED\e[0m"
sleep $spanje
VAL=`whois $domain.${tlds[$i]}`
done
if [[ $5 == true ]]; then
echo $VAL > "$whoisdatadir/$domain.${tlds[$i]}"
fi
if [[ $6 == true ]]; then
echo $VAL
fi
if [[ $VAL == *${availables[$i]}* ]]
then
echo -e "\e[92m$domain.${tlds[$i]} FREE\e[0m\007"
echo "$domain.${tlds[$i]}" >> freedomains.${tlds[$i]}
else
echo -e "\e[91m$domain.${tlds[$i]} TAKEN\e[0m"
fi
done
done
echo -e "\e[39m"
fi
|