How to use command line to get whois information?

I have a large text file on my server that has a list of domains in which I need to get contact information. Here is an example of what appears to me when I run whois on stackoverflow.com:

root@server [~]# whois stackoverflow.com [Querying whois.verisign-grs.com] [Redirected to whois.name.com] [Querying whois.name.com] [whois.name.com] __ _ ____ | \ | | __ _ _ __ ___ ___ / ___|___ _ __ ___ | \| |/ _` | '_ ` _ \ / _ \ | | / _ \| '_ ` _ \ | |\ | (_| | | | | | | __/ _ | |__| (_) | | | | | | |_| \_|\__,_|_| |_| |_|\___| (_) \____\___/|_| |_| |_| On a first name basis with the rest of the world. Get your <a href="http://www.name.com">domains</a> at Name.com. Domain Name: stackoverflow.com Registrar: Name.com LLC Expiration Date: 2015-12-26 19:18:07 Creation Date: 2003-12-26 19:18:07 Name Servers: ns1.serverfault.com ns2.serverfault.com ns3.serverfault.com ns4.serverfault.com REGISTRANT CONTACT INFO Stack Exchange, Inc. Sysadmin Team 1 Exchange Plaza Floor 26 New York NY 10006 US Phone: +1.2122328280 Email Address: sysadmin-team@stackoverflow.com ADMINISTRATIVE CONTACT INFO Stack Exchange, Inc. Sysadmin Team 1 Exchange Plaza Floor 26 New York NY 10006 US Phone: +1.2122328280 Email Address: sysadmin-team@stackoverflow.com TECHNICAL CONTACT INFO Stack Exchange, Inc. Sysadmin Team 1 Exchange Plaza Floor 26 New York NY 10006 US Phone: +1.2122328280 Email Address: sysadmin-team@stackoverflow.com BILLING CONTACT INFO Stack Exchange, Inc. Sysadmin Team 1 Exchange Plaza Floor 26 New York NY 10006 US Phone: +1.2122328280 Email Address: sysadmin-team@stackoverflow.com Timestamp: 1363827248.6992 The Data in the Name.com LLC WHOIS database is provided by Name.com LLC for information purposes, and to assist persons in obtaining information about or related to a domain name registration record. Name.com LLC does not guarantee its accuracy. By submitting a WHOIS query, you agree that you will use this Data only for lawful purposes and that, under no circumstances will you use this Data to: (1) allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations via e-mail (spam); or (2) enable high volume, automated, electronic processes that apply to Name.com LLC (or its systems). Name.com LLC reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy. Cached on: 2013-03-20T18:54:08-06:00 

What I need to do is extract certain information from each request. The problem is that I do not understand how to extract only contact letters from each whois domain, because each whois result differs depending on the registrar.

For example, this is how I would like it to work:

At the command line, my server should check whois information for each domain name and export all the results to a new text file that will contain only email addresses for domain name owners. The name of the file containing all domains is domain.txt, and I would like the new file to be named new.txt, if possible.

Any help with this would be greatly appreciated. Thanks in advance!

+4
source share
2 answers

First you have to look for whois on cpan , and then pick up the less obsolete and the most colored and most relevant.

+1
source

Not necessarily Perl, but since you are doing this on the command line (presumably linux), you can use a shell script to do the following.

 cat domain.txt | while read line do echo "$line - `whois $line | grep \"@\"`" >> new.txt done 

If the domain.txt file looks like this:

 stackoverflow.com 

Then your new.txt file will look something like this:

 stackoverflow.com - sysadmin-team@stackoverflow.com stackoverflow.com - sysadmin-team@stackoverflow.com stackoverflow.com - sysadmin-team@stackoverflow.com stackoverflow.com - sysadmin-team@stackoverflow.com 

You can add some sort and uniq commands to clear duplicate values. Let me know if necessary, and I will clarify.

0
source

All Articles