GithubHelp home page GithubHelp logo

rfc1036 / whois Goto Github PK

View Code? Open in Web Editor NEW
467.0 44.0 111.0 1.2 MB

Intelligent WHOIS client

License: GNU General Public License v2.0

Makefile 5.24% C 78.89% Perl 5.06% Roff 9.16% Shell 1.64%
whois whois-lookup whois-client domains

whois's Introduction

In 1999 I wrote this Whois client from scratch because the alternatives
were obsolete or bloated.

This client is intelligent and can automatically select the appropriate
whois server for most queries.

The internal database is often more accurate than IANA's published one,
but please send me any information you have regarding domains and network
resources which are not correctly handled by the program.

Because of historical reasons this package also contains the mkpasswd
program, which can be used to encrypt a password with crypt(3).


The canonical distribution point for releases of the program is
https://ftp.debian.org/debian/pool/main/w/whois/ .


Useful information sources:
- https://www.ripe.net/ripe/docs/current-ripe-documents/ripe-database-documents
- https://www.iana.org/domains/root/db/
- https://www.icann.org/en/resources/idn/fast-track/string-evaluation-completion
- https://www.aftld.org/

Marco d'Itri <[email protected]>

whois's People

Contributors

a1346054 avatar anivar avatar cgty avatar chrisleick avatar elbaby avatar ffontaine avatar freddy36 avatar glisha avatar global avatar helmutg avatar ip1981 avatar joedalton2 avatar kerolasa avatar lanurmi avatar lumitoluma avatar mfornasa avatar norwayfun avatar oersen avatar pemensik avatar ppisar avatar qboosh avatar rfc1036 avatar robert-scheck avatar romuald avatar sevan avatar terrencekhng avatar tgurr avatar vapier avatar weppos avatar yurayko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

whois's Issues

mkpasswd: explicitly describe in man page that salt is being generated if not given

I had an argument with a collegue that mkpasswd may not generate a salt if none is given.
--help explicitly explains this behavior but the manual mkpasswd(1) says nothing about this feature.

Because Incorrect documentation that looks authoritative is worse than no documentation the man page must contain correct information or should be deleted completely.

Regards

whois returning a 1 when query succeeds

While debugging an issue with the Python whois module I noticed that whois version 5.2.14 returns a 1 when a query succeeds:

$ whois prefetch.net
....
$ echo $?
1

The output from the whois command looks fine so I'm not real clear why the program is returning a 1? I checked the notes from the last two point releases and don't see a fix for this.

whois_5.5.0.tar.xz tar ball contains whois-5.4.4 directory

5.5.0 release tar ball is not properly created. Instead of whois-5.5.0 top-level directory it contains whois-5.4.4 directory:

$ wget -q -O - 'http://ftp.debian.org/debian/pool/main/w/whois/whois_5.5.0.tar.xz' | tar tJf - |head
whois-5.4.4/
whois-5.4.4/COPYING
whois-5.4.4/Makefile
whois-5.4.4/README
whois-5.4.4/as32_del_list
whois-5.4.4/as_del_list
whois-5.4.4/config.h
whois-5.4.4/data.h
whois-5.4.4/debian/
whois-5.4.4/debian/changelog

Timeout option as in most Linux commands

Good morning!

Please consider implementing timeout option (e.g. as in bind9-host -W) that is for the whole operation of your whois client.

We use whois in fail2ban alert emails and - as I understand - it could run for up to 60 seconds.
I'd set a 3 seconds timeout.

Thank you!

Suboptimal querying 6to4 ip6.arpa. subdomains

whois-5.3.0 addess support for ip6.arpa subdomain, but it fails to compute IPv4 address from a 6to4 IPv6 address. See the "0.0.0.0" in this output:

$ ./whois c.b.9.0.6.6.9.5.2.0.0.2.ip6.arpa.

Querying for the IPv4 endpoint 0.0.0.0 of a 6to4 IPv6 address.

No whois server is known for this kind of object.

Please note that 6to4 2002:/16 prefix is somewhat deprecated because ICANN stopped accepting them as NS values and NRO stopped delegating 2.0.0.2.ip6.arpa. subdomains. Despite that I think whois client could do better and compute the corresponding IPv4 address correctly as done with direct IPv6 address query:

$ ./whois 2002:5966:9bc::

Querying for the IPv4 endpoint 89.102.9.188 of a 6to4 IPv6 address.

% This is the RIPE Database query service.

5.2.6 hides everything from reponse for a domain

whois-6.2.6 broke hiding disclaimers. ''whois -H at'' does not show anything. Reverting commit

commit 78d2e38a6416b5e2889eac6868afd7c05c384b57
Author: Marco d'Itri <[email protected]>
Date:   Mon Mar 23 04:23:29 2015 +0100

    Update the disclaimer detection strings

    When possible they have been future-proofed by hiding everything until
    the end of the input.

helps.

I think it's because many of the odd hide_strings[] members changed from empty string to NULL which means to hide everything to the end of the response.

-H for gTLDs

The Donuts WHOIS Terms of Use is not hidden by the -H flag. Example:

whois -H starbucks.coffee

Class B 150.230.0.0 gives wrong answer

The Class B space aka /16 of 150.230.0.0 with a generic

whois 150.230.0.0

gives outdated results, while a directed lookup with

whois -h whois.arin.net 150.230.0.0

comes back with the correct answer of Oracle Corp,

I see the Class A 150.0.0.0 is in your ip_del_list .... should 150.230.0.0 be added to ip_del_recovered list ?

Use 'domain *.com' by default instead of '*.com' to subvert spam issues

Thanks to whois spamming, the output of whois for many popular domains (especially .com) ends up listing other domains with "google.com" in it:

$ whois google.com
(...)
Aborting search 50 records found .....
   Server Name: GOOGLE.COM.AFRI******S.ORG
   Registrar: TUCOWS DOMAINS INC.
   Whois Server: whois.tucows.com
   Referral URL: http://www.tucowsdomains.com

   Server Name: GOOGLE.COM.ANGR******ES.COM
   IP Address: 8.8.8.8
   Registrar: NAME.COM, INC.
   Whois Server: whois.name.com
   Referral URL: http://www.name.com
(...)

I'd suggest doing a whois lookup for 'domain (hostname)' for .com domains, instead of the usual '(hostname)' lookup, for the .com domains.

(There are some servers which do not support the domain directive, so this can't be used universally.)

.de IDN

Not sure if this is actually an issue and the job of the whois command

whois done on ACE (xn--) versions for .de domains will always return an invalid status because the server expects the encoded version

Example:

% whois xn--caf-dma.de
Domain: xn--caf-dma.de
Status: invalid

After asking DENIC support, the whois "has" to tell the server it is querying the ACE version:

% whois -h whois.nic.de -T st,ace xn--caf-dma.de
Domain: café.de
Domain-Ace: xn--caf-dma.de
Status: connect

Would it be possible to add this feature for IDN .de domains? Or is it outside the scope of the whois command?

whois command returns non-zero exit code

Hi!
When I use whois command to find out when the domain (*.com) expires I must get the exit code 0, but i get exit code 1. When I use whois command for domain *.ru or *.org I get exit code 0.
Because of non-zero code, I can not use the script to automatically check the validity period of a domain.
Can I somehow solve this problem?

nagios@webt:~$ whois --version
Vrsion 5.2.7.
nagios@webt:~$ whois vk.com; echo EXIT CODE: $?
   Domain Name: VK.COM
   Registry Domain ID: 3206186_DOMAIN_COM-VRSN
   Registrar WHOIS Server: whois.nic.ru
   Registrar URL: http://nic.ru
   Updated Date: 2017-12-21T12:36:17Z
   Creation Date: 1997-06-24T04:00:00Z
   Registry Expiry Date: 2019-06-23T04:00:00Z
   Registrar: Regional Network Information Center, JSC dba RU-CENTER
   Registrar IANA ID: 463
   Registrar Abuse Contact Email: [email protected]
   Registrar Abuse Contact Phone: +7 (495) 994-46-01
   Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
   Name Server: NS1.VKONTAKTE.RU
   Name Server: NS2.VKONTAKTE.RU
   Name Server: NS3.VKONTAKTE.RU
   Name Server: NS4.VKONTAKTE.RU
   DNSSEC: unsigned
   URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database: 2018-04-26T09:02:16Z <<<

*****************************************
TEXT
*****************************************
EXIT CODE: 1
nagios@webt:~$ whois netconfig.org; echo EXIT CODE: $?
Domain Name: NETCONFIG.ORG
Registry Domain ID: D159330187-LROR
Registrar WHOIS Server: whois.enom.com
Registrar URL: http://www.enom.com
Updated Date: 2017-05-31T15:43:26Z
Creation Date: 2010-06-02T21:15:31Z
Registry Expiry Date: 2018-06-02T21:15:31Z
Registrar Registration Expiration Date:
Registrar: eNom, Inc.
Registrar IANA ID: 48
Registrar Abuse Contact Email: [email protected]
Registrar Abuse Contact Phone: +1.4252982646
Reseller:
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferP
*****************************************
TEXT
*****************************************
EXIT CODE: 0

.TC gTLD has changed their whois server location

Previously, 'whois.adamsnames.tc' was used for whois lookups on the .TC registry. This has been changed to 'whois.nic.tc' .

Reference : https://www.iana.org/domains/root/db/tc.html

I understand this was a recent change, however IANA has the date of that record's last update showing as > Record last updated 2014-11-19. Registration date 1997-01-27.

Using the command :

whois adamsnames.tc

Returns

getaddrinfo(whois.adamsnames.tc): Name or service not known

Handle unicode/punycode

TL;DR: Is there any interest in conversion to punycode in the whois program?


The lead-up to this question:

When I whois ål.dk, DK-Hostmaster's WHOIS server sends back

No entries found for the selected source.

even though their web-interface says that the domain is taken.

There are three ways I should be able to get a positive result here:

  1. Had I converted to punycode, whois xn--l-1fa.dk does work.

  2. Had I used ISO-8859-15, e.g.

    $ whois "$(echo -n "ål.dk" | iconv -f UTF-8 -t ISO-8859-15)"
    

    that would have worked as well.

  3. (Doesn't work, notified.) Following DK-Hostmaster's own UTF-8 recommendations,

    # Assuming the 'å' is made with UTF-8, this should work but doesn't
    $ whois " --charset=utf8 ål.dk"
    

Now, I really don't know if --charset is common in WHOIS servers. In fact, since .dk is one of the very few TLDs that have any special rules in whois (--show-handles), I actually doubt it. I assume we're in absolutely-no-standards-land and any general support here is futile.

So without having done extensive surveys (we could), an alternative to sending arbitrary unicodey bytestrings and hope for the best, one could punycode them. This is much easier in my Haskell library since I can assume UTF-8, and not so easy for the present whois program, since we also have to figure out the calling terminal's encoding first (and possibly forego conversion if we can't.)

Some TLDs limit allowable non-standard extended characters which makes guessing without knowing the encoding easier. For example, if .dk only allows æøåöäüé, I doubt there is any overlap in the way those letters are encoded. Still, I'd prefer a generalised method over any TLD-specific knowledge, since there are so many TLDs with special behavior to keep track of.

Format change from crsnic whois

Crsnic change the format so that
Whois Server:
Now is
Registrar WHOIS Server.

See:
https://blog.aa419.org/2017/07/26/security-broken-whois-it/

Without verifying much a patch like this might be needed:

diff -ur whois-5.2.16/whois.c whois-5.2.16_fixed/whois.c
--- whois-5.2.16/whois.c	2017-03-13 00:23:17.000000000 +0000
+++ whois-5.2.16_fixed/whois.c	2017-07-27 10:58:50.016289543 +0000
@@ -834,7 +834,7 @@
 	   is queried */
 	if (state == 0 && strneq(buf, "   Domain Name:", 15))
 	    state = 1;
-	if (state == 1 && (strneq(buf, "   Whois Server:", 16)
+	if (state == 1 && (strneq(buf, "   Registrar WHOIS Server:", 26)
 		    || strneq(buf, "   WHOIS Server:", 16))) {
 	    for (p = buf; *p != ':'; p++);	/* skip until the colon */
 	    for (p++; *p == ' '; p++);		/* skip the spaces */

APNIC IP inter RIR transfert not properly handled

Hello folks,
Seems an IP range transfert from APNIC to at least RIPE, but probably to any other RIR they have agreements with, is not properly handled on whois response, as not yet managed on the exceptions.
for example:

whois 1.179.112.0

returns:

% for more information on IANA, visit http://www.iana.org
% This query returned 1 object

refer:        whois.apnic.net

inetnum:      1.0.0.0 - 1.255.255.255
organisation: APNIC
status:       ALLOCATED

whois:        whois.apnic.net

changed:      2010-01
source:       IANA

# whois.apnic.net

% [whois.apnic.net]
% Whois data copyright terms    http://www.apnic.net/db/dbcopyright.html

% Information related to '1.179.112.0 - 1.179.127.255'

% Abuse contact for '1.179.112.0 - 1.179.127.255' is '[email protected]'

inetnum:        1.179.112.0 - 1.179.127.255
netname:        STUB-1-179-112SLASH20
descr:          Transferred to the RIPE region on 2020-12-08T07:54:04Z.
country:        ZZ
admin-c:        STUB-AP
tech-c:         STUB-AP
status:         ALLOCATED PORTABLE
mnt-by:         APNIC-STUB
mnt-irt:        IRT-STUB-AP
last-modified:  2020-12-07T22:00:28Z
source:         APNIC

The APNIC has implemented, back in 2019, "stub" records (link to their blog) , that returns the information related to an inter RIR transfert, and the destination can be found with:
descr: Transferred to the RIPE region on 2020-12-08T07:54:04Z.

Would be an interesting improvement I guess to follow such redirection ?

missing file Use

I want to know how to use this software if it is cli or gui, what are the feasible operation
I do not even install

Invalid CIDR blocks in ip_del_list

There are a few invalid CIDR blocks in the current ip_del_list file. They can never be matched.

210.71.128.0/16 twnic
210.241.0.0/15 twnic
221.138.0.0/13 whois.nic.or.kr

Wrong exit code for .io domain

Possibly related to #68, but I'm not sure what change was implemented to fix that.
Currently at the most recent release.

$ whois --version
Version 5.5.9.

Report bugs to <[email protected]>.

Expected behavior is for non-existing *.io domain to return exit code 1, however returns 0.

$ whois -H faketestdomainthatdoesntexist.io; echo ERROR CODE: $?
NOT FOUND
>>> Last update of WHOIS database: 2021-06-04T17:42:30Z <<<

Access to WHOIS information provided by Internet Computer Bureau Ltd. ("ICB") is provided to assist persons in determining the contents of a domain name registration record in the ICB registry database. The data in this record is provided by ICB for informational purposes only, and ICB does not guarantee its accuracy. This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to(i) allow, enable, or otherwise support the transmission by e-mail, telephone, facsimile or other electronic means of mass, unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (ii) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator, a Registrar, or ICB or its services providers except as reasonably necessary to register domain names or modify existing registrations. UK privacy laws limit the scope of information permitted for certain public access.  Therefore, concerns regarding abusive use of domain registrations in the ICB registry should be directed to either (a) the Registrar of Record as indicated in the WHOIS output, or (b) the ICB anti-abuse department at [email protected].

All rights reserved. ICB reserves the right to modify these terms at any time. By submitting this query, you agree to abide by these policies

The Registrar of Record identified in this output may have an RDDS service that can be queried for additional information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.
ERROR CODE: 0

mkpasswd -S '' crashes

Calling mkpasswd with an empty salt and no method results in a crash on a GNU/Linux:

Starting program: /home/petr/whois/whois-devel/mkpasswd -S ''
[...]
Program received signal SIGSEGV, Segmentation fault.
0x0000000000401621 in main (argc=<optimized out>, argv=<optimized out>) at mkpasswd.c:310
310             salt = NOFAIL(malloc(strlen(salt_prefix) + strlen(rounds_str)
Missing separate debuginfos, use: dnf debuginfo-install libxcrypt-4.4.10-1.fc30.x86_64

The reason is that salt_prefix variable is set to NULL and rounds_str[] content is uninitilaized and thus strlen() on that variables has an undefined behavior.

I think the logic around computing a salt should be changed to handle this case. Especially the "if (salt_arg)" condition is not enough.

Proxy support

Do u consider to provide SOCKS proxy support from command line?

"Registrar WHOIS Server" not being used

$ whois --version
Version 5.5.6.

Maybe I'm missing something, but when I do something like this:

$ whois domain.org
Domain Name: DOMAIN.ORG
Registry Domain ID: D1511762-LROR
Registrar WHOIS Server: whois.domain.com
Registrar URL: www.domain.com
Updated Date: 2020-04-02T03:47:21Z
Creation Date: 1995-04-30T04:00:00Z
Registry Expiry Date: 2021-05-01T04:00:00Z
Registrar Registration Expiration Date:
Registrar: Domain.com, LLC
Registrar IANA ID: 886
Registrar Abuse Contact Email: [email protected]
Registrar Abuse Contact Phone: +1.6022262389
Reseller:
Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
Registrant Organization: Endurance International Group West, Inc
Registrant State/Province: MA
Registrant Country: US
Name Server: DNS1.DOMAINBANK.COM
Name Server: DNS2.DOMAINBANK.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form https://www.icann.org/wicf/)
>>> Last update of WHOIS database: 2020-05-01T08:00:05Z <<<

I was expecting whois to make a second query against Registrar WHOIS Server, which is whois.domain.com in this case. This happens correctly for some domains (example: namesilo.net) but not others, like in the above case.

I can see that the code is supposed to be following those, like in here:

whois/whois.c

Line 903 in b7cfb4e

if (state == 1 && strneq(buf, "Registrar WHOIS Server:", 23)) {

and I don't quite get why that works for some domains and not others.

memleak

Heya, is a memleak in the recursion of handling server or so. The strdup on referral_server needs a free at whois.c line 857 I think:

referral_server = strdup(p);

I'd leave a patch but I am busy and when I added a free where I thought it should be, it didn't work and ya, guess I can just leave it here though as info. Cheers.

P.S. attaching a patch which should fix the leak accordingly to debug gremlins.

m-whois-memleak.patch.txt

libidn2 breaks CIDR notation

There seems to be a problem when using libidn2 from #49 / 8ed6d73 with CIDR queries:

make clean; make all; ./whois -h whois.ripe.net 193.0.0.0/21
works

make clean; make all HAVE_LIBIDN=1; ./whois -h whois.ripe.net 193.0.0.0/21
works

make clean; make all HAVE_LIBIDN2=1; ./whois -h whois.ripe.net 193.0.0.0/21
returns:
%ERROR:101: no entries found

DENIC_PARAM_CHARSET " -C UTF-8"

We cross-compile an embedded Linux speciality distro and choose not to compile whois with either libidn or libiconv .

In order to query whois.denic.de with 8'bit results such as: "Address: Königsberger Straße" the following patch is needed:

--- whois-5.2.13/whois.c.orig	2016-11-08 07:17:26.381230844 -0600
+++ whois-5.2.13/whois.c	2016-11-08 07:46:05.563327605 -0600
@@ -661,7 +661,7 @@
 #ifdef HAVE_ICONV
 # define DENIC_PARAM_CHARSET ""
 #else
-# define DENIC_PARAM_CHARSET " -C US-ASCII"
+# define DENIC_PARAM_CHARSET " -C UTF-8"
 #endif
 
     /* add useful default flags if there are no flags or multiple arguments */

And with this patch the ö and ß characters are displayed properly, along with the query results.

At this point in time it would seem no one needs to be prodded to use libiconv (they don't for a special reason), and setting the DENIC_PARAM_CHARSET default to UTF-8 would provide better results for the non-idn/iconv case.

If you don't agree with changing the non-iconv DENIC_PARAM_CHARSET to UTF-8, a compile time option to do so would be appreciated.

Thanks.

exit code 1

Hello.
When I execute whois freebornhall.com inside docker container(based on laradock)
I am getting correct result.
but echo $?
returns exit code 1.
Why is not 0?

When I run it on local machine it return exit code 0. But output is strange, it looks like whois info ouputed 2 times. Inside container output almost the same but ends on the line The Registry database contains ONLY .COM, .NET, .EDU domains and
Registrars.

   Domain Name: FREEBORNHALL.COM
   Registry Domain ID: 76405646_DOMAIN_COM-VRSN
   Registrar WHOIS Server: whois.godaddy.com
   Registrar URL: http://www.godaddy.com
   Updated Date: 2020-08-25T12:35:16Z
   Creation Date: 2001-08-25T04:58:02Z
   Registry Expiry Date: 2021-08-25T04:58:02Z
   Registrar: GoDaddy.com, LLC
   Registrar IANA ID: 146
   Registrar Abuse Contact Email: [email protected]
   Registrar Abuse Contact Phone: 480-624-2505
   Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
   Domain Status: clientRenewProhibited https://icann.org/epp#clientRenewProhibited
   Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
   Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
   Name Server: NS57.DOMAINCONTROL.COM
   Name Server: NS58.DOMAINCONTROL.COM
   DNSSEC: unsigned
   URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database: 2020-11-05T14:55:40Z <<<

For more information on Whois status codes, please visit https://icann.org/epp

NOTICE: The expiration date displayed in this record is the date the
registrar's sponsorship of the domain name registration in the registry is
currently set to expire. This date does not necessarily reflect the expiration
date of the domain name registrant's agreement with the sponsoring
registrar.  Users may consult the sponsoring registrar's Whois database to
view the registrar's reported date of expiration for this registration.

TERMS OF USE: You are not authorized to access or query our Whois
database through the use of electronic processes that are high-volume and
automated except as reasonably necessary to register domain names or
modify existing registrations; the Data in VeriSign Global Registry
Services' ("VeriSign") Whois database is provided by VeriSign for
information purposes only, and to assist persons in obtaining information
about or related to a domain name registration record. VeriSign does not
guarantee its accuracy. By submitting a Whois query, you agree to abide
by the following terms of use: You agree that you may 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, telephone,
or facsimile; or (2) enable high volume, automated, electronic processes
that apply to VeriSign (or its computer systems). The compilation,
repackaging, dissemination or other use of this Data is expressly
prohibited without the prior written consent of VeriSign. You agree not to
use electronic processes that are automated and high-volume to access or
query the Whois database except as reasonably necessary to register
domain names or modify existing registrations. VeriSign reserves the right
to restrict your access to the Whois database in its sole discretion to ensure
operational stability.  VeriSign may restrict or terminate your access to the
Whois database for failure to abide by these terms of use. VeriSign
reserves the right to modify these terms at any time.

The Registry database contains ONLY .COM, .NET, .EDU domains and
Registrars.
Domain Name: FREEBORNHALL.COM
Registry Domain ID: 76405646_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.godaddy.com
Registrar URL: http://www.godaddy.com
Updated Date: 2020-08-25T12:35:14Z
Creation Date: 2001-08-25T04:58:02Z
Registrar Registration Expiration Date: 2021-08-25T04:58:02Z
Registrar: GoDaddy.com, LLC
Registrar IANA ID: 146
Registrar Abuse Contact Email: [email protected]
Registrar Abuse Contact Phone: +1.4806242505
Domain Status: clientTransferProhibited http://www.icann.org/epp#clientTransferProhibited
Domain Status: clientUpdateProhibited http://www.icann.org/epp#clientUpdateProhibited
Domain Status: clientRenewProhibited http://www.icann.org/epp#clientRenewProhibited
Domain Status: clientDeleteProhibited http://www.icann.org/epp#clientDeleteProhibited
Registrant Organization: Extremophiles Inc.
Registrant State/Province: California
Registrant Country: US
Registrant Email: Select Contact Domain Holder link at https://www.godaddy.com/whois/results.aspx?domain=FREEBORNHALL.COM
Admin Email: Select Contact Domain Holder link at https://www.godaddy.com/whois/results.aspx?domain=FREEBORNHALL.COM
Tech Email: Select Contact Domain Holder link at https://www.godaddy.com/whois/results.aspx?domain=FREEBORNHALL.COM
Name Server: NS57.DOMAINCONTROL.COM
Name Server: NS58.DOMAINCONTROL.COM
DNSSEC: unsigned
URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/
>>> Last update of WHOIS database: 2020-11-05T14:00:00Z <<<

For more information on Whois status codes, please visit https://www.icann.org/resources/pages/epp-status-codes-2014-06-16-en

TERMS OF USE: The data contained in this registrar's Whois database, while believed by the 
registrar to be reliable, is provided "as is" with no guarantee or warranties regarding its
accuracy. This information is provided for the sole purpose of assisting you in obtaining 
information about domain name registration records. Any use of this data for any other purpose 
is expressly forbidden without the prior written permission of this registrar. By submitting 
an inquiry, you agree to these terms and limitations of warranty. In particular, you agree not 
to use this data to allow, enable, or otherwise support the dissemination or collection of this 
data, in part or in its entirety, for any purpose, such as transmission by e-mail, telephone, 
postal mail, facsimile or other means of mass unsolicited, commercial advertising or solicitations 
of any kind, including spam. You further agree not to use this data to enable high volume, automated 
or robotic electronic processes designed to collect or compile this data for any purpose, including 
mining this data for your own personal or commercial purposes. Failure to comply with these terms 
may result in termination of access to the Whois database. These terms may be subject to modification 
at any time without notice.

Overlapping as ranges in as_del

The whereas functions returns the first matching range in the as_assign array. There are several overlapping ranges in the as_del_list file. This is causing different servers to be returned than what I think the author intended.

9216    10067   apnic
10034   10073   whois.nic.or.kr

17408   18431   apnic
17930   17961   whois.nic.ad.jp
18067   18098   whois.nic.ad.jp
18121   18152   whois.nic.ad.jp
18259   18290   whois.nic.ad.jp
18259   18290   whois.nic.ad.jp

23552   24575   apnic
23552   23601   whois.nic.or.kr
23612   23643   whois.nic.ad.jp

xxxx.co

whois xxxx.co (xxxx is domain name )
no data return

WHOIS_OPTIONS not honored

I noticed that I'm still getting disclaimers with WHOIS_OPTIONS="-H". Looking at the code, it appears that merge_args() in whois.c isn't doing what it's supposed to. To check, I printed argv after the merge:

...
/* prepend options from environment */
argv = merge_args(getenv("WHOIS_OPTIONS"), argv, &argc);

for(idx=0; idx < argc; idx++) {
  printf("Parameter #%i is %s.\n", idx, argv[idx]);
}

Now,

$ echo $WHOIS_OPTIONS
-H
$ ./whois orlitzky.com
Parameter #0 is ./whois.
Parameter #1 is orlitzky.com.
...

License of database files?

Hi @rfc1036,

I'd like to know if the files new_gtlds_list and tld_serv_list are both released under the GPL 2+ license like whois.c is. I'm asking because I'd like to base the Haskell 'whois' library off of these lists, as they seem to be the most comprehensive resource of whois servers available online.

Issue when running bulk .org domains

There seems to be an error when running build .org domains. After a while it returns

"NOT FOUND"

is there some kind of rate limiter on the .org whois server?

Wrong whois server for 154.6.204.0/22

The program is "guessing" the wrong whois server to lookup 154.6.204.0/22.
It tries to use AfriNIC but its managed by ARIN and also reporting The WHOIS is temporary unable to query ARIN for the requested resource. Please try again later

whois --version

Version 5.5.13.

Report bugs to [email protected].
root@SGP-H21-NEW:~# whois 154.6.207.5
% This is the AfriNIC Whois server.
% The AFRINIC whois database is subject to the following terms of Use. See https://afrinic.net/whois/terms

% Note: this output has been filtered.
% To receive output for a database update, use the "-B" flag.

% The WHOIS is temporary unable to query ARIN for the requested resource. Please try again later.

Does 'AFILIAS' flag in 'tld_serv_list' cover properly?

In 3a5bcdc of 2019-12-31, "whois.afilias-grs.info" is moved from whois.c into make_tld_serv.pl. But exactly one TLD in tld_serv_list, .bz, still uses the AFILIAS flag that appears to be the only way to trigger query_afilias() (0x08 in make_tld_serv.pl corresponding to the case 8: of handle_query() of whois.c).

The commit message of 3a5bcdc, "Generalize the support for Afilias-style referrals", seems to indicate that the special-casing has to do with handling recursive lookups like "Registrar WHOIS Server" strings that seem to be specifically handled only by query_afilias() and query_crsnic().

The remainder of known Afilias TLDs (ack -i afilias tld_serv_list) refer to other Afilias servers.

It occurred to me that you can also use "whois2.afilias-grs.net" for .bz:

$ whois -h whois.afilias-grs.info nic.bz 2>&1 1>1.txt
$ whois -h whois2.afilias-grs.net nic.bz 2>&1 1>2.txt
$ diff 1.txt 2.txt
20c20
< >>> Last update of WHOIS database: 2020-01-16T17:31:31Z <<<
---
> >>> Last update of WHOIS database: 2020-01-16T17:31:41Z <<<

Unless I'm mistaken about this special-casing of .bz (in which all of this is gibberish), is it intentional that this is the only Afilias TLD that receives special handling of query_afilias()? In that case, I'm unsure what's generalising about it.

Perhaps it makes sense to mark more Afilias TLDs with the AFILIAS flag and not hardcode "whois.afilias-grs.info" anywhere. This is still slightly confusing to the unknowing reader: Why are some TLDs with "afilias" in the server name labelled with AFILIAS and others not? Whatever the answer is is deserving of a comment atop query_afilias().

If I've touched on something that can be tidied up, I am happy to provide a pull request.

Subdomains

Regarding

whois/tld_serv_list

Lines 351 to 352 in 416b3e9

# AW means that I had to guess the whois server name, but I was not able
# to find any registered subdomains to verify it.

.xn--45brj9c whois.registry.in # India, Bengali AW

Some subdomains are:

  • xn--z5bd4bq1db8d6b.xn--45brj9c
  • xn--u5bxfcqewdax4kraj7ob.xn--45brj9c
  • xn--e6bg5b.xn--45brj9c

Also written as:

  • ডাটামেল্.ভারত
  • রবীন্দ্ররচনাবলী.ভারত
  • ভার.ভারত

whois "-r" option FAILs to disable role recursion query, instead invokes RIPE db query, like BSD whois

building from src (or using linux distros' rpms),

git clone https://github.com/rfc1036/whois.git
cd whois
git checkout next
	Already on 'next'
	Your branch is up to date with 'origin/next'.
make
ls -al ./whois
	-rwxr-xr-x 1 root root 176K Jul 14 09:55 ./whois*
./whois --version
	Version 5.5.10.
	
	Report bugs to <[email protected]>.

unflagged whois works

./whois github.com
	Domain Name: GITHUB.COM
	Registry Domain ID: 1264983250_DOMAIN_COM-VRSN
	Registrar WHOIS Server: whois.markmonitor.com
	Registrar URL: http://www.markmonitor.com
	Updated Date: 2020-09-08T09:18:27Z
	Creation Date: 2007-10-09T18:20:50Z
	Registry Expiry Date: 2022-10-09T18:20:50Z
	Registrar: MarkMonitor Inc.
	Registrar IANA ID: 292
	Registrar Abuse Contact Email: [email protected]
	...

option to NOT recurse for roles is offered

./whois --help | grep "\-r"
	-r                     turn off recursive look-ups for contact information

but instead, invokes a RIPE query

./whois -r github.com
	% This is the RIPE Database query service.
	% The objects are in RPSL format.
	%
	% The RIPE Database is subject to Terms and Conditions.
	% See http://www.ripe.net/db/support/db-terms-conditions.pdf

	% Note: this output has been filtered.
	%       To receive output for a database update, use the "-B" flag.

	%ERROR:101: no entries found
	%
	% No entries found in source RIPE.

	% This query was served by the RIPE Database Query Service version 1.101 (ANGUS)

which is the FreeBSD client's behavior,

@ https://www.freebsd.org/cgi/man.cgi?query=whois
-r	     Use the R'eseaux IP Europ'eens (RIPE) database.  It contains net-
	     work numbers and domain contact information for Europe.  Get
	     query syntax documentation	using whois -r help

Wrong salt length: [0-9]+ bytes when 0 expected.

When I tried to generate a yescrypt hash with a salt I got this issue:

./mkpasswd -V | head -n1
mkpasswd 5.5.14
./mkpasswd -S '0CbpG1oIS1UOftfSzI7eQ0'
Wrong salt length: 22 bytes when 0 expected.

How can I generate a valid yescrypt hash using a specific salt?

verisign tld's no longer show registrant, etc info? Also exits with error code 1.

Hey,
I just did a whois on several .com, .net domains, and each one showed only the registrar, dates, name servers, etc. In addition, whois exited with an error 1, as if the domain did not exist. Is this a change to verisign that breaks this tool? Is it not broken at all? In either case, any idea why no registrant, etc contact info is showing up?
-Michael.
P.S. whois version: 5.2.16-1 arch linux.

Licensing of tld_serv_list

Hello!

I was wondering about the redistribution conditions of tld_serv_list. If I'm reading COPYING correctly the codebase is licensed as GPLv2+, does this also apply to the database files?

Thanks!

What do I need to do to get whois working in chroot?

Hello.

I am trying to get whois working in chroot but failed.

Debian 10.8 x64
whois Version 5.4.3.

Error message when chrooted: getaddrinfo(whois.apnic.net): Servname not supported for ai_socktype

Thank you for any hints :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.