summaryrefslogtreecommitdiffstats
path: root/shortdomains.sh
blob: 7928f28a752ac5f54eb4ec01b4c55f3e517e07b6 (plain) (blame)
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
#!/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

if [[ $1 == 'all' ]]; 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)
	availables=('No entries found' 'No whois information found' 'Status: free' 'Status:             AVAILABLE') 
	denieds=('Query denied' 'limit exceeded' '55000000002' 'denied') ## idk about .it
	sleeps=(36 29 87 87) # 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 (-;
	for n in "${sleeps[@]}" ; do
		((n > spanje)) && spanje=$n
	done
else
	tlds=($1)
	if [ -n "$2" ] ; then
	  availables=($2)
	else
	  availables=("No entries found")
	fi

	if [ -n "$3" ] ; then 
	  denieds=($3)
	else
	  denieds=("Query denied")
	fi
	
	if [ -n "$4" ] ; then 
	  spanje=$4
	else
	  spanje=87
	fi
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"'  /-Use at your own risk-> Short domain finder Beta <--Educational use only-\'
  echo -e "\e[93m"' /------> (C) 2019 Anton Sijanec, all rights reserved, 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
  echo -e "\e[93m"'  /-Use at your own risk-> Short domain finder Beta <--Educational use only-\'
  echo -e "\e[93m"' /------> (C) 2019 Anton Sijanec, all rights reserved, 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"
	tldcount=${#tlds[@]}
  for domain in $list # do for every 2 character possibility
  do
	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.$1" >> freedomains.$1
     else
       echo -e "\e[91m$domain.${tlds[$i]} TAKEN\e[0m"
     fi
	 done
	 sleep $spanje
  done
  echo -e "\e[39m"
fi