This is rather ugly, because the RIPE and APNIC whois servers do
not provide referrals for address blocks that they do not manage.
However ARIN is usually the right place or knows the right place
so we try there.
The particular instance which clued me in to this bug is U.Mich.
141.211.0.0/16 for which the referral chain should be IANA ->
RIPE -> ARIN. RIPE's RDAP does provide useful redirects (for
example try `curl -I http://rdap.db.ripe.net/ip/141.211.0.0)
so maybe their whois server can be improved.
AfriNIC's whois server gives more direct referrals, but they are
designed to be human-readable. Ugly, but we can manage.
The issue of referrals between RIRs is likely to become more important
in the future whith the increasing number of cross-region IP address
block transfers increases.
Ensure the special cases trigger whether we come via a referral
or via the -c option. Match host names case-insensitively.
Use the default character set supported by .de (UTF-8) since that
is more compatible with the modern world than ISO 8859-1. Persuade
them to give us a useful answer whether an internationalized
domain name is given in UTF-8 or in punycode.
The IANA whois server has the right referral information for domain
names, IP addresses, and AS numbers, so whois does not need to be
able to choose servers itself (except for a few cases where referrals
do not work). We can delete a chunk of code, which is always fun.
This change improves the referral handling to be less sensitive to
all the various formats, and to allow multi-hop referral chains,
such as IANA -> registry -> registrar.
ARIN queries have the "+" flag added if no flags are present, so we
get full details if the query matches multiple objects. The Verisign
anti-spam logic is also now suppressed if the user provided a non-
trivial query string.
Uninformative rubric is now trimmed by default. The -S option
turns off trimming, and disables query fettling.
The -i option is back to its traditional pre-1999 hostname, since
whois.internic.net is more useful than whois.networksolutions.com.
Note that the old fallback/default server whois.crsnic.net is an
alias for whois.internic.net.
The manual is more informative about query syntax.
Look up AS numbers at ARIN.
Handle more referral formats.
Suppress spammy nameserver objects when querying the .com and .net
whois servers by explicitly querying for domain names by default.
This extends the existing support for -NORID handles
to include -NICAT, -ARIN, and -RIPE handles.
The suffix machinery is also used to work around a problem with
lack of referrals from the Nominet server for .uk: names under
.ac.uk need to be queried directly at JANET's whois server.
Attempt to connect to alternate addresses if the connect doesn't
succeed in 180ms, and cut wait time between connection attempts
in half for each additional, if no connection was established.
Take the first connection to succeed and close the others.
This makes whois more responsive when e.g. IPv6 service took long
time or fail to respond.
PR: 158125
Submitted by: Mark Andrews <marka isc org> (with changes from me)
MFC after: 2 weeks
is in accordance with the information provided at
ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
Also add $FreeBSD$ to a few files to keep svn happy.
Discussed with: imp, rwatson
do for IPv4 addresses without having to explicetly specify that the
ARIN server should be used to get the initial information
PR: bin/128725
Submitted by: "Matt D. Harris" <mdh_lists@yahoo.com>
MFC after: 1 week
Registry (LACNIC) with the -l option and support for recursive IP
address searches.
PR: 44448
Submitted by: David Wolfskill <david@catwhisker.org>
MFC after: 1 week
whois.apnic.net. To properly receive hints for recursive IP searches,
we convert a buffer to lowercase before searching for magic words.
PR: 42834
Submitted by: Andre Albsmeier <andre.albsmeier@mchp.siemens.de> (mostly)
X-MFC-After: re approval
server may not return a new line character on the final line.
o Remove the whois.networksolutions.com fallback code, which is no
longer needed.
o Instead of determining a hostname by terminating it when we see
whitespace, only allow hostname characters and terminate the string
when it's not such a character.
o Add a small optimization in a for loop.
PR: 30968
Reviewed by: -audit
MFC after: 4 days
with specifying a port.
o Add the -p flag for specifying a port. (PR: 28790) This is
useful for querying rwhois servers. Example:
whois -h rwhois.exodus.net -p rwhois 216.136.180.0
o Add the -c flag which allows one to get the same whois server
that would normally be determined if no arguments were specified.
(Concept based on work by phantom, requested by ache) Example:
whois -c ru TCNET-MNT-RIPN
o Deprecate -R flag in favour of -c ru.
PR: 28790
Reviewed by: -audit, ache, phantom
o Increase readability by creating a wrapper for asprintf(3).
o Cast isdigit(3) argument to unsigned char for future locale
changes.
Submitted by: phantom
Reviewed by: -audit, des
Approved by: des