#!/bin/bash # A sample shell script to print domain ip address hosting information such as # Location of server, city, ip address owner, country and network range. # This is useful to track spammers or research purpose. # ------------------------------------------------------------------------- # Copyright (c) 2006 nixCraft project <http://cyberciti.biz/fb/> # This script is licensed under GNU GPL version 2.0 or above # ------------------------------------------------------------------------- # This script is part of nixCraft shell script collection (NSSC) # Visit http://bash.cyberciti.biz/ for more information. # ------------------------------------------------------------------------- # Last updated on Mar/05/2010 # ------------------------------------------------------------------------- # Get all domains _dom=$@ # Die if no domains are given [ $# -eq 0 ] && { echo "Usage: $0 domain1.com domain2.com ..."; exit 1; } for d in $_dom do _ip=$(host $d | grep 'has add' | head -1 | awk '{ print $4}') [ "$_ip" == "" ] && { echo "Error: $d is not valid domain or dns error."; continue; } echo "Getting information for domain: $d [ $_ip ]..." whois "$_ip" | egrep -w 'OrgName:|City:|Country:|OriginAS:|NetRange:' echo "" done
Run script as follows:
./script.sh cyberciti.biz google.com
Sample outputs:
Getting information for domain: cyberciti.biz [ 74.86.48.99 ]... OrgName: SoftLayer Technologies Inc. City: Dallas Country: US NetRange: 74.86.0.0 - 74.86.255.255 OriginAS: AS36351 Getting information for domain: google.com [ 209.85.231.104 ]... OrgName: Google Inc. City: Mountain View Country: US NetRange: 209.85.128.0 - 209.85.255.255
4000+ howtos and counting! If you enjoyed this article, join 45000+ others and get free email updates!
- Download Script
- Email this to a friend
- Rss Feed
- Last Updated: 03/12/10


{ 14 comments… read them below or add one }
Use with caution, whois database server may ban you if you abuse of theyr services.
Have dome a little update. here are the datails
A small modification in the script. This allows to handle more ip addresses on the domains on which this is available (eg. google.com or yahoo.com)
Link
Nice script good job cheep it going
- You should not use [ but [[
- You should not use this as a valid test [ "$_ip" == "" ]
but test the return value [[ $? -eq 0 ]]
“permission denied” ?
try chmod +x *scriptname*
There is no need to use three programs if you can do it with one.
_ip=$(host $d | grep 'has add' | head -1 | awk '{ print $4}')should read
_ip=$(host $d | awk '/has add/ {x++; if (x=1) {print $NF; exit}}')Hi I am using CentOS 5.6 (64 bit)
I am getting nothing while running this script
My output is –
[root@svn ~]# ./521.sh cyberciti.biz http://www.google.com
Getting information for domain: cyberciti.biz [ 75.126.153.206 ]…
Getting information for domain: http://www.google.com [ 74.125.236.52 ]…
[root@svn ~]
Can you please help me on that
Hi , i get the same as DeepakSharma , i was wondering does anyone know what this is about ? Im using Fedora 15 , 64bit .
/e I tryed “whois” command but i dont have so i replaced it with “who” , maybe thats the reason? Any ideas in general ? :)
I tried using above script on CentOS 6 but the same is not working and giving error as
./searchdomain.sh google.co.in yahoo.co.in
./searchdomain.sh: line 22: host: command not found
Error: google.co.in is not valid domain or dns error.
./searchdomain.sh: line 22: host: command not found
Error: yahoo.co.in is not valid domain or dns error.
Please advise
The issue is because of the egrep command – currently its filtering the lines starting with OrgName:|City:|Country:|OriginAS:|NetRange:
but .org .biz and some other TLDs use a bit different wording – try to change line:
whois “$_ip” | egrep -w ‘OrgName:|City:|Country:|OriginAS:|NetRange:’
with
whois “$_ip” | egrep -w ‘OrgName:|City:|Country:|OriginAS:|NetRange:|inetnum|address|descr’
at least that works good enough for me.
Cheers,
Stanimir
You need to install host command.
How about this one? This fixed it on my centos 5.8 box: