Here is my code to find the details of the domain. The domain can be feed as following:
bash script.sh domain1.com domain2.com
bash script.sh domains.txt <-- not completed
The output should be in following format:
IP Address: 192.168.101.2
Server Name: servername.com
NS1: ns1.ournameserver.com
NS2: ns2.ournameserver.com
NS3: ns3.ournameserver.com
Datacenter: datacenter-name
Region: datacenter-13
Server Role: cPanel Web Server
Env: Production
Owner: xxxxxxxxxxx
Status: Active
IP Address: 192.168.101.2
Server Name: servername
NS1: ns1.ournameserver.com
NS2: ns2.ournameserver.com
NS3: ns3.ournameserver.com
Datacenter: datacenter-name
Region: datacenter-13
Server Role: cPanel Web Server
Env: Production
Owner: xxxxxxxxxxx
Status: Suspended
If it is in cloudflare:
Domain name: test.com
IP Address: 192.168.101.1
Server ID: N/A
Server Name: N/A
NS1: LYNDA.CLOUDFLARE.COM
NS2: DYN.CLOUDFLARE.COM
Datacenter: OVH
Region: HETZ-C3
Server Role: cPanel Web Server
Env: Production
Owner: xxxxxxxxxxx
Now it is only giving result in normal format, it also needs to be in JSON format
script.sh
#!bin/bash
HIP="$@"
check ()
{
regexp="^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$"
nameserver=('@ns1.ournameserver.com' '@ns2.ournameserver.com' '@ns3.ournameserver.com')
for j in ${nameserver[@]}
do
IPADD=`dig $j $i +noall +answer | grep "A" | awk '{print $5}'`
if [[ $IPADD =~ $regexp ]]
then
echo "IP Address = " $IPADD
ServerName=`nslookup $IPADD | grep -o -P '(?<=\=).*(?=.)'`
echo "ServerName = " $ServerName
DATA=`whois $IPADD | egrep 'org-name|OrgName' | awk '{print $2.$3}'`
echo "Data Center = " $DATA
break
fi
done
}
check2 ()
{
Pinging=`ping $i -c 1 | grep 'from' | cut -d$' ' -f4-5| tr '\(|\)' ' '`
IPADD=`awk '{print $2}' <<< $Pinging`
echo "IP Address = " $IPADD
ServerName=`awk '{print $1}' <<< $Pinging`
echo "Server Name = " $ServerName
}
for i in ${HIP[@]}
do
echo "Domain Name = " $i;
nsserver=`nslookup -type=ns $i | grep 'nameserver' | grep -o -P '(?<=ns.).*(?=.)' | head -n 1`
if [[ $nsserver == 'cloudflare.com' ]]
then
check
if ! [[ $IPADD =~ $regexp ]]
then
echo "This Domain does not belong to this server."
fi
else
check2
fi
whois $i | grep "Registrant Name"
nslookup -type=ns $i | grep nameserver | awk '{print $2,$3,$4}'
var=`curl -sL $i | grep '<title>' | tr -d ' ' | grep -o -P '(?<=Account).*(?=ed)'`
if [[ $var == 'Suspend' ]]
then
echo "Status = Account Suspended"
else
var=`curl -I $i 2>/dev/null | head -n 1 | cut -d$' ' -f2-3`
echo "Status = " $var
fi
printf '%*s' 100 | tr ' ' '#'
echo ''
done