summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO5
-rw-r--r--as_del_list10
-rw-r--r--config.h4
-rw-r--r--data.h18
-rw-r--r--debian/changelog23
-rw-r--r--ip_del_list9
-rwxr-xr-xmake_ip_del.pl2
-rw-r--r--po/de.po86
-rw-r--r--po/el.po80
-rw-r--r--po/es.po80
-rw-r--r--po/it.po66
-rw-r--r--po/no.po78
-rw-r--r--po/pl.po78
-rw-r--r--tld_serv_list102
-rw-r--r--whois.119
-rw-r--r--whois.c110
-rw-r--r--whois.h7
-rw-r--r--whois.spec2
18 files changed, 423 insertions, 356 deletions
diff --git a/TODO b/TODO
index 4aa5981..7ca452e 100644
--- a/TODO
+++ b/TODO
@@ -2,11 +2,6 @@ What about rwhois?
Should support the refer attribute of RIPE-189 objects.
-I need a procedure for looking up an IPv6 address in a list of prefixes.
-Will anybody contribute it?
-
Add Exodus rwhois server (e.g. 216.35.0.0/16).
Add rwhois.verio.net:4321 (e.g. 192.204.0.0/16).
-Support queries for "AS8627:fltr-TRANSIT-OUT".
-
diff --git a/as_del_list b/as_del_list
index 5a80f89..f58e067 100644
--- a/as_del_list
+++ b/as_del_list
@@ -26,18 +26,16 @@
10074 10239 apnic
12288 13311 ripe
15360 16383 ripe
-16384 17407 arin
17567 17616 whois.nic.or.kr
17832 17880 whois.nic.or.kr
17408 18431 apnic
-18432 19455 arin
-19456 20479 arin
20480 21503 ripe
23552 24575 apnic
24576 25599 ripe
27648 28671 lacnic
-###
-### DO NOT FORGET TO UPDATE whereas()
-###
+# catch all: everything else comes from ARIN
+0 28671 arin
+# EOL marker
+0 0 .
diff --git a/config.h b/config.h
index 3208c92..0c74d6c 100644
--- a/config.h
+++ b/config.h
@@ -1,6 +1,6 @@
/* Program version */
/* not for the inetutils version */
-#define VERSION "4.5.32"
+#define VERSION "4.6.0"
/* Configurable features */
@@ -11,7 +11,7 @@
#undef ALWAYS_HIDE_DISCL
/* Default server */
-#define DEFAULTSERVER "whois.internic.net"
+#define DEFAULTSERVER "whois.arin.net"
/* Configuration file */
/*
diff --git a/data.h b/data.h
index 66333db..bb54b07 100644
--- a/data.h
+++ b/data.h
@@ -65,13 +65,13 @@ const char *hide_strings[] = {
"Access to America Online", "time. By accessing", /* AOL */
"% Access and use restricted", "% http://www.icann", /* GANDI */
"NeuStar, Inc., the Registry", "rules. For details", /* us */
+ "The data in this whois", "to abide by these terms.", /* enom */
NULL, NULL
};
const char *nic_handles[] = {
"net-", "whois.arin.net",
"netblk-", "whois.arin.net",
- "asn-", "whois.arin.net",
"lim-", "whois.ripe.net",
"coco-", "whois.corenic.net",
"coho-", "whois.corenic.net",
@@ -97,6 +97,22 @@ struct ip_del ip_assign[] = {
{ 0, 0, NULL }
};
+struct ip6_del {
+ unsigned long net; /* bits 16-22 of the address */
+ const char *serv;
+};
+
+struct ip6_del ip6_assign[] = {
+ { 0x0200, "whois.apnic.net" },
+ { 0x0400, "whois.arin.net" },
+ { 0x0600, "whois.ripe.net" },
+ { 0x0800, "whois.ripe.net" },
+ { 0x0A00, "whois.ripe.net" },
+ { 0x0C00, "whois.apnic.net" },
+ { 0x1200, "whois.lacnic.net" },
+ { 0, NULL }
+};
+
struct as_del {
unsigned short first;
unsigned short last;
diff --git a/debian/changelog b/debian/changelog
index 3d2ef42..1439b6c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,26 @@
+whois (4.6.0) unstable; urgency=medium
+
+ * Added .ai .bo, .bt, .dz, .gi, .pn, .tp and .uz TLDs.
+ * Updated .ae, .ar, .at, .bi, .co, .cu, .do, .fm, .ge, .jo, .kr, .lu,
+ .lv, .mt, .mu, .mw, .nr, .ph, .pk, .sa, .sb, .ua, .uy, .vi, .vu TLDs
+ (courtesy of Frιdιric L. W. Meunier).
+ * Rewritten the IPv6-matching code. Fixed a few bugs there too.
+ * Generalized and deuglyfied some parts of the code.
+ * Added support for RPSL objects like AS8627:fltr-TRANSIT-OUT.
+ * Objects with no dot or hyphen and beginning with a ! are looked up
+ in whois.networksolutions.com.
+ * The new default server is whois.arin.net since it will only be used
+ for network names.
+ * Implemented a 60 seconds timeout on queries (Closes: #170255).
+
+ -- Marco d'Itri <md@linux.it> Thu, 28 Nov 2002 20:49:01 +0100
+
+whois (4.5.34) unstable; urgency=medium
+
+ * Added a new RIPE IPv4 allocation.
+
+ -- Marco d'Itri <md@linux.it> Sun, 24 Nov 2002 03:52:32 +0100
+
whois (4.5.33) unstable; urgency=medium
* Added another RIPE IPv6 allocation.
diff --git a/ip_del_list b/ip_del_list
index 1bd4959..e0dff2a 100644
--- a/ip_del_list
+++ b/ip_del_list
@@ -2,7 +2,7 @@
# contain historical allocations now scattered among all the RIRs.
# Do not even try submitting such networks for inclusion in this list
# unless they are very big and contains multiple assignments to different
-# customers.
+# customers documented in the whois database.
#
24.192.0.0/14 apnic
24.132.0.0/14 ripe
@@ -17,6 +17,8 @@
# broken?
# 63.208.0.0/13 rr.level3.net
80.0.0.0/7 ripe
+82.0.0.0/8 ripe
+96.0.0.0/3 UNALLOCATED
0.0.0.0/2 arin # all other A classes are managed by ARIN
133.0.0.0/8 whois.nic.ad.jp
139.20.0.0/14 ripe
@@ -57,6 +59,10 @@
169.208.0.0/12 apnic
171.16.0.0/12 ripe
171.32.0.0/15 ripe
+## All other B class addresses are supposed to be allocated by ARIN
+## We know that many of them are not, but they can't all be listed here
+128.0.0.0/2 arin
+
## The C classes space is cleanly delegated and the data here should be complete
192.71.0.0/16 ripe
192.72.0.0/16 whois.seed.net.tw # NETBLK-SEED-NETS
@@ -71,6 +77,7 @@
194.0.0.0/7 ripe
198.17.117.0/24 ripe
196.0.0.0/6 arin
+
200.17.0.0/16 whois.nic.br
200.18.0.0/15 whois.nic.br
200.20.0.0/16 whois.nic.br
diff --git a/make_ip_del.pl b/make_ip_del.pl
index 91ca390..c452492 100755
--- a/make_ip_del.pl
+++ b/make_ip_del.pl
@@ -14,6 +14,8 @@ while (<>) {
(~(0xffffffff>>$m))."UL, \"";
if ($s =~ /\./) {
print "$s";
+ } elsif ($s eq 'UNALLOCATED') {
+ print "\006";
} else {
print "whois.$s.net";
}
diff --git a/po/de.po b/po/de.po
index cd9f664..2eed490 100644
--- a/po/de.po
+++ b/po/de.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: whois 4.4.13\n"
-"POT-Creation-Date: 2002-11-16 04:27+0100\n"
+"POT-Creation-Date: 2002-11-28 21:21+0100\n"
"PO-Revision-Date: 2001-07-04 15:15+01:00\n"
"Last-Translator: Simon Richter <Simon.Richter@in.tum.de>\n"
"Language-Team: German <de@li.org>\n"
@@ -24,30 +24,30 @@ msgstr ""
"\n"
"Senden sie Bugreports an %s.\n"
-#: ../whois.c:151 ../whois.c:188
+#: ../whois.c:151 ../whois.c:202
#, c-format
msgid "Using server %s.\n"
msgstr "Benutze Server %s.\n"
-#: ../whois.c:165
+#: ../whois.c:172
#, c-format
msgid "Using default server %s.\n"
msgstr "Benutze voreingestellten Server %s.\n"
-#: ../whois.c:168
+#: ../whois.c:175
msgid "This TLD has no whois server, but you can access the whois database at"
msgstr "Diese TLD hat keinen whois-Server, aber eine whois-Datenbank unter"
-#: ../whois.c:174
+#: ../whois.c:181
msgid "This TLD has no whois server."
msgstr "Diese TLD hat keinen whois-Server."
-#: ../whois.c:178
+#: ../whois.c:185
#, fuzzy
msgid "Connecting to whois.crsnic.net."
msgstr "Verbinde zu whois.internic.net."
-#: ../whois.c:184
+#: ../whois.c:191
#, fuzzy, c-format
msgid ""
"\n"
@@ -58,7 +58,16 @@ msgstr ""
"InterNIC verweist auf %s.\n"
"\n"
-#: ../whois.c:197
+#: ../whois.c:195
+msgid "No whois server is known for this kind of object."
+msgstr ""
+
+#: ../whois.c:198
+#, fuzzy
+msgid "Unknown AS number or IP network. Please upgrade this program."
+msgstr "Unbekannte AS-Nummer. Bitte upgraden Sie dieses Programm."
+
+#: ../whois.c:211
#, c-format
msgid ""
"Query string: \"%s\"\n"
@@ -67,46 +76,22 @@ msgstr ""
"Suche nach: \"%s\"\n"
"\n"
-#: ../whois.c:247 ../whois.c:250
+#: ../whois.c:258 ../whois.c:261
#, c-format
msgid "Cannot parse this line: %s"
msgstr ""
-#: ../whois.c:330
-msgid ""
-"I don't know where this IP has been delegated.\n"
-"I'll try ARIN and hope for the best..."
-msgstr ""
-"Es lieί sich nicht feststellen, wer diese IP vergeben hat.\n"
-"Versuche ARIN..."
-
-#: ../whois.c:347
-msgid "I guess it's a netblock name but I don't know where to look it up."
-msgstr ""
-"Vermutlich ist dies ein Netblock-Name, aber es gibt keinen\n"
-"voreingestellten Server."
-
-#: ../whois.c:354
-msgid "I guess it's a domain but I don't know where to look it up."
-msgstr ""
-"Vermutlich ist dies ein Domainname, aber es gibt keinen\n"
-"voreingestellten Server."
-
-#: ../whois.c:364
-msgid "Unknown AS number. Please upgrade this program."
-msgstr "Unbekannte AS-Nummer. Bitte upgraden Sie dieses Programm."
-
-#: ../whois.c:399
+#: ../whois.c:400
#, fuzzy
msgid "Warning: RIPE flags used with a traditional server."
msgstr "Warnung: RIPE-Flags wurden ignoriert (\"traditioneller\" Server)."
-#: ../whois.c:457
+#: ../whois.c:460
#, c-format
msgid "Detected referral to %s on %s.\n"
msgstr "Verweis auf %s gefunden bei %s.\n"
-#: ../whois.c:474
+#: ../whois.c:477
msgid ""
"Catastrophic error: disclaimer text has been changed.\n"
"Please upgrade this program.\n"
@@ -114,22 +99,26 @@ msgstr ""
"Schwerer Fehler: Haftungsausschlusstext wurde geaendert.\n"
"Bitte upgraden sie dieses Programm.\n"
-#: ../whois.c:548
+#: ../whois.c:551
#, c-format
msgid "Host %s not found."
msgstr "Host %s nicht gefunden."
-#: ../whois.c:558
+#: ../whois.c:561
#, c-format
msgid "%s/tcp: unknown service"
msgstr "%s/tcp: unbekannter Dienst"
-#: ../whois.c:575
+#: ../whois.c:573
+msgid "Timeout."
+msgstr ""
+
+#: ../whois.c:579
#, c-format
msgid "Interrupted by signal %d..."
msgstr "Erhielt Signal %d, unterbrochen..."
-#: ../whois.c:620
+#: ../whois.c:628
#, fuzzy
msgid ""
"Usage: whois [OPTION]... OBJECT...\n"
@@ -261,3 +250,20 @@ msgstr ""
#: ../mkpasswd.c:260
msgid "Available algorithms:\n"
msgstr ""
+
+#~ msgid ""
+#~ "I don't know where this IP has been delegated.\n"
+#~ "I'll try ARIN and hope for the best..."
+#~ msgstr ""
+#~ "Es lieί sich nicht feststellen, wer diese IP vergeben hat.\n"
+#~ "Versuche ARIN..."
+
+#~ msgid "I guess it's a netblock name but I don't know where to look it up."
+#~ msgstr ""
+#~ "Vermutlich ist dies ein Netblock-Name, aber es gibt keinen\n"
+#~ "voreingestellten Server."
+
+#~ msgid "I guess it's a domain but I don't know where to look it up."
+#~ msgstr ""
+#~ "Vermutlich ist dies ein Domainname, aber es gibt keinen\n"
+#~ "voreingestellten Server."
diff --git a/po/el.po b/po/el.po
index 677453c..039dacb 100644
--- a/po/el.po
+++ b/po/el.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: whois 4.5.3\n"
-"POT-Creation-Date: 2002-11-16 04:27+0100\n"
+"POT-Creation-Date: 2002-11-28 21:21+0100\n"
"PO-Revision-Date: 2001-02-23 16:07:57+0900\n"
"Last-Translator: Simos Xenitellis <simos@hellug.gr>\n"
"Language-Team: Greek <nls@tux.hellug.gr>\n"
@@ -24,32 +24,32 @@ msgstr ""
"\n"
"Αναφέρατε σφάλματα στο %s.\n"
-#: ../whois.c:151 ../whois.c:188
+#: ../whois.c:151 ../whois.c:202
#, c-format
msgid "Using server %s.\n"
msgstr "Γίνεται χρήση του εξυπηρετητή %s.\n"
-#: ../whois.c:165
+#: ../whois.c:172
#, c-format
msgid "Using default server %s.\n"
msgstr "Χρήση εξ' ορισμού εξυπηρετητή %s.\n"
-#: ../whois.c:168
+#: ../whois.c:175
msgid "This TLD has no whois server, but you can access the whois database at"
msgstr ""
"Αυτό το TLD δεν έχει εξυπηρετητή whois, ωστόσο μπορείτε να προσπελάσετε την "
"βάση whois στο"
-#: ../whois.c:174
+#: ../whois.c:181
msgid "This TLD has no whois server."
msgstr "Αυτό το TLD δεν έχει εξυπηρετητή whois."
-#: ../whois.c:178
+#: ../whois.c:185
#, fuzzy
msgid "Connecting to whois.crsnic.net."
msgstr "Γίνεται σύνδεση στο whois.internic.net."
-#: ../whois.c:184
+#: ../whois.c:191
#, fuzzy, c-format
msgid ""
"\n"
@@ -60,7 +60,16 @@ msgstr ""
"Βρέθηκε αναφορά από το InterNIC στο %s.\n"
"\n"
-#: ../whois.c:197
+#: ../whois.c:195
+msgid "No whois server is known for this kind of object."
+msgstr ""
+
+#: ../whois.c:198
+#, fuzzy
+msgid "Unknown AS number or IP network. Please upgrade this program."
+msgstr "¶γνωστος αριθμός AS. Παρακαλώ ενημερώστε αυτό το πρόγραμμα."
+
+#: ../whois.c:211
#, c-format
msgid ""
"Query string: \"%s\"\n"
@@ -69,44 +78,23 @@ msgstr ""
"Αλφαριθμητικό ερώτησης: \"%s\"\n"
"\n"
-#: ../whois.c:247 ../whois.c:250
+#: ../whois.c:258 ../whois.c:261
#, c-format
msgid "Cannot parse this line: %s"
msgstr ""
-#: ../whois.c:330
-msgid ""
-"I don't know where this IP has been delegated.\n"
-"I'll try ARIN and hope for the best..."
-msgstr ""
-"Δε γνωρίζε σε ποιον έχει αποδοθεί ευθύνη για αυτήν την διεύθυνση IP.\n"
-"Θα δοκιμάσω το ARIN και εύχομε για το καλύτερο..."
-
-#: ../whois.c:347
-msgid "I guess it's a netblock name but I don't know where to look it up."
-msgstr ""
-"Πιστεύω ότι είναι όνομα μπλοκ δικτύου αλλά δε γνωρίζω που να το αναζητήσω."
-
-#: ../whois.c:354
-msgid "I guess it's a domain but I don't know where to look it up."
-msgstr "Πιστεύω ότι είναι ένα επίθημα αλλά δε γνωρίζω που να το αναζητήσω."
-
-#: ../whois.c:364
-msgid "Unknown AS number. Please upgrade this program."
-msgstr "¶γνωστος αριθμός AS. Παρακαλώ ενημερώστε αυτό το πρόγραμμα."
-
-#: ../whois.c:399
+#: ../whois.c:400
#, fuzzy
msgid "Warning: RIPE flags used with a traditional server."
msgstr ""
"Προειδοποίηση: Η σημαίες του RIPE αγνοούνται σε έναν παραδοσιακό εξυπηρετητή."
-#: ../whois.c:457
+#: ../whois.c:460
#, c-format
msgid "Detected referral to %s on %s.\n"
msgstr "Ανιχνεύθηκε αναφορά του %s στο %s.\n"
-#: ../whois.c:474
+#: ../whois.c:477
msgid ""
"Catastrophic error: disclaimer text has been changed.\n"
"Please upgrade this program.\n"
@@ -114,22 +102,26 @@ msgstr ""
"Καταστροφικό σφάλμα: το κείμενο της αποποίησης ευθυνών έχει τροποποιηθεί.\n"
"Παρακαλώ αναβαθμίστε το πρόγραμμα.\n"
-#: ../whois.c:548
+#: ../whois.c:551
#, c-format
msgid "Host %s not found."
msgstr "Το σύστημα %s δε βρέθηκε."
-#: ../whois.c:558
+#: ../whois.c:561
#, c-format
msgid "%s/tcp: unknown service"
msgstr "%s/tcp: άγνωστη υπηρεσία"
-#: ../whois.c:575
+#: ../whois.c:573
+msgid "Timeout."
+msgstr ""
+
+#: ../whois.c:579
#, c-format
msgid "Interrupted by signal %d..."
msgstr "Διακοπή από το σήμα %d..."
-#: ../whois.c:620
+#: ../whois.c:628
#, fuzzy
msgid ""
"Usage: whois [OPTION]... OBJECT...\n"
@@ -268,3 +260,17 @@ msgstr ""
#: ../mkpasswd.c:260
msgid "Available algorithms:\n"
msgstr ""
+
+#~ msgid ""
+#~ "I don't know where this IP has been delegated.\n"
+#~ "I'll try ARIN and hope for the best..."
+#~ msgstr ""
+#~ "Δε γνωρίζε σε ποιον έχει αποδοθεί ευθύνη για αυτήν την διεύθυνση IP.\n"
+#~ "Θα δοκιμάσω το ARIN και εύχομε για το καλύτερο..."
+
+#~ msgid "I guess it's a netblock name but I don't know where to look it up."
+#~ msgstr ""
+#~ "Πιστεύω ότι είναι όνομα μπλοκ δικτύου αλλά δε γνωρίζω που να το αναζητήσω."
+
+#~ msgid "I guess it's a domain but I don't know where to look it up."
+#~ msgstr "Πιστεύω ότι είναι ένα επίθημα αλλά δε γνωρίζω που να το αναζητήσω."
diff --git a/po/es.po b/po/es.po
index 426d853..b159dba 100644
--- a/po/es.po
+++ b/po/es.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: whois 4.5.29\n"
-"POT-Creation-Date: 2002-11-16 04:27+0100\n"
+"POT-Creation-Date: 2002-11-28 21:21+0100\n"
"PO-Revision-Date: 2002-08-24 16:22+0200\n"
"Last-Translator: Francisco Monteagudo <francisco@monteagudo.net>\n"
"Language-Team: Spanish <es@li.org>\n"
@@ -24,31 +24,31 @@ msgstr ""
"\n"
"Informar de bugs a %s.\n"
-#: ../whois.c:151 ../whois.c:188
+#: ../whois.c:151 ../whois.c:202
#, c-format
msgid "Using server %s.\n"
msgstr "Usando el servidor %s.\n"
-#: ../whois.c:165
+#: ../whois.c:172
#, c-format
msgid "Using default server %s.\n"
msgstr "Usando el servidor predefinido %s.\n"
-#: ../whois.c:168
+#: ../whois.c:175
msgid "This TLD has no whois server, but you can access the whois database at"
msgstr ""
"Este TLD no dispone de servidor whois, pero puede acceder a la informacion "
"de whois en"
-#: ../whois.c:174
+#: ../whois.c:181
msgid "This TLD has no whois server."
msgstr "No existe servidor whois para este TLD."
-#: ../whois.c:178
+#: ../whois.c:185
msgid "Connecting to whois.crsnic.net."
msgstr "Conectando a whois.crsnic.net."
-#: ../whois.c:184
+#: ../whois.c:191
#, c-format
msgid ""
"\n"
@@ -59,7 +59,16 @@ msgstr ""
"Se ha encontrado en crsnic una referencia a %s.\n"
"\n"
-#: ../whois.c:197
+#: ../whois.c:195
+msgid "No whois server is known for this kind of object."
+msgstr ""
+
+#: ../whois.c:198
+#, fuzzy
+msgid "Unknown AS number or IP network. Please upgrade this program."
+msgstr "Numero AS desconocido. Por favor, actualice este programa."
+
+#: ../whois.c:211
#, c-format
msgid ""
"Query string: \"%s\"\n"
@@ -68,44 +77,23 @@ msgstr ""
"Consulta: \"%s\"\n"
"\n"
-#: ../whois.c:247 ../whois.c:250
+#: ../whois.c:258 ../whois.c:261
#, c-format
msgid "Cannot parse this line: %s"
msgstr "No puedo procesar esta linea: %s"
-#: ../whois.c:330
-msgid ""
-"I don't know where this IP has been delegated.\n"
-"I'll try ARIN and hope for the best..."
-msgstr ""
-"Ignoro a quien a sido delegada esta direccion IP.\n"
-"Voy a probar con ARIN a ver si hay suerte..."
-
-#: ../whois.c:347
-msgid "I guess it's a netblock name but I don't know where to look it up."
-msgstr ""
-"Aparentemente, es el nombre de un netblock, pero ignoro donde buscarlo."
-
-#: ../whois.c:354
-msgid "I guess it's a domain but I don't know where to look it up."
-msgstr "Aparentemente, es un nombre de dominio, pero ignoro donde buscarlo."
-
-#: ../whois.c:364
-msgid "Unknown AS number. Please upgrade this program."
-msgstr "Numero AS desconocido. Por favor, actualice este programa."
-
-#: ../whois.c:399
+#: ../whois.c:400
#, fuzzy
msgid "Warning: RIPE flags used with a traditional server."
msgstr ""
"Atencion: Los flags RIPE son ignorados por los servidores tradicionales."
-#: ../whois.c:457
+#: ../whois.c:460
#, c-format
msgid "Detected referral to %s on %s.\n"
msgstr "Detectada una referencia a %s en %s.\n"
-#: ../whois.c:474
+#: ../whois.c:477
msgid ""
"Catastrophic error: disclaimer text has been changed.\n"
"Please upgrade this program.\n"
@@ -113,22 +101,26 @@ msgstr ""
"Error catastrofico: el texto de las condiciones de uso ha sido cambiado.\n"
"Actualize este programa.\n"
-#: ../whois.c:548
+#: ../whois.c:551
#, c-format
msgid "Host %s not found."
msgstr "Host %s no encontrado."
-#: ../whois.c:558
+#: ../whois.c:561
#, c-format
msgid "%s/tcp: unknown service"
msgstr "%s/tcp: servicio desconocido"
-#: ../whois.c:575
+#: ../whois.c:573
+msgid "Timeout."
+msgstr ""
+
+#: ../whois.c:579
#, c-format
msgid "Interrupted by signal %d..."
msgstr "Interrumpido por la seρal %d..."
-#: ../whois.c:620
+#: ../whois.c:628
#, fuzzy
msgid ""
"Usage: whois [OPTION]... OBJECT...\n"
@@ -278,3 +270,17 @@ msgstr ""
#: ../mkpasswd.c:260
msgid "Available algorithms:\n"
msgstr "Algoritmos disponibles:\n"
+
+#~ msgid ""
+#~ "I don't know where this IP has been delegated.\n"
+#~ "I'll try ARIN and hope for the best..."
+#~ msgstr ""
+#~ "Ignoro a quien a sido delegada esta direccion IP.\n"
+#~ "Voy a probar con ARIN a ver si hay suerte..."
+
+#~ msgid "I guess it's a netblock name but I don't know where to look it up."
+#~ msgstr ""
+#~ "Aparentemente, es el nombre de un netblock, pero ignoro donde buscarlo."
+
+#~ msgid "I guess it's a domain but I don't know where to look it up."
+#~ msgstr "Aparentemente, es un nombre de dominio, pero ignoro donde buscarlo."
diff --git a/po/it.po b/po/it.po
index 92f346e..b54ff1b 100644
--- a/po/it.po
+++ b/po/it.po
@@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: whois 4.4.13\n"
-"POT-Creation-Date: 2002-11-16 04:27+0100\n"
-"PO-Revision-Date: 2002-04-26 04:09+0200\n"
+"POT-Creation-Date: 2002-11-28 21:21+0100\n"
+"PO-Revision-Date: 2002-11-28 21:22+0100\n"
"Last-Translator: Marco d'Itri <md@linux.it>\n"
"Language-Team: Italian <it@li.org>\n"
"MIME-Version: 1.0\n"
@@ -24,30 +24,30 @@ msgstr ""
"\n"
"Segnalare i bug a %s.\n"
-#: ../whois.c:151 ../whois.c:188
+#: ../whois.c:151 ../whois.c:202
#, c-format
msgid "Using server %s.\n"
msgstr "Uso il server %s.\n"
-#: ../whois.c:165
+#: ../whois.c:172
#, c-format
msgid "Using default server %s.\n"
msgstr "Uso il server predefinito %s.\n"
-#: ../whois.c:168
+#: ../whois.c:175
msgid "This TLD has no whois server, but you can access the whois database at"
msgstr ""
"Questo TLD non ha un server whois, ma si puς accedere al database tramite"
-#: ../whois.c:174
+#: ../whois.c:181
msgid "This TLD has no whois server."
msgstr "Per questo TLD non esiste un server whois."
-#: ../whois.c:178
+#: ../whois.c:185
msgid "Connecting to whois.crsnic.net."
msgstr "Mi sto connettendo a whois.crsnic.net."
-#: ../whois.c:184
+#: ../whois.c:191
#, c-format
msgid ""
"\n"
@@ -58,7 +58,15 @@ msgstr ""
"Trovato un riferimento di CRSNIC a %s.\n"
"\n"
-#: ../whois.c:197
+#: ../whois.c:195
+msgid "No whois server is known for this kind of object."
+msgstr "Non θ noto alcun server whois per questo tipo di oggetto."
+
+#: ../whois.c:198
+msgid "Unknown AS number or IP network. Please upgrade this program."
+msgstr "Numero dell'AS o della rete IP sconosciuto. Per favore aggiorna il programma."
+
+#: ../whois.c:211
#, c-format
msgid ""
"Query string: \"%s\"\n"
@@ -67,41 +75,21 @@ msgstr ""
"Richiesta: \"%s\"\n"
"\n"
-#: ../whois.c:247 ../whois.c:250
+#: ../whois.c:258 ../whois.c:261
#, c-format
msgid "Cannot parse this line: %s"
msgstr "Impossibile interpretare questa riga: %s"
-#: ../whois.c:330
-msgid ""
-"I don't know where this IP has been delegated.\n"
-"I'll try ARIN and hope for the best..."
-msgstr ""
-"Non so a chi θ stato delegato questo IP.\n"
-"Proverς con ARIN sperando per il meglio..."
-
-#: ../whois.c:347
-msgid "I guess it's a netblock name but I don't know where to look it up."
-msgstr "Credo che sia il nome di un netblock ma non so dove cercarlo."
-
-#: ../whois.c:354
-msgid "I guess it's a domain but I don't know where to look it up."
-msgstr "Credo che sia un dominio ma non so dove cercarlo."
-
-#: ../whois.c:364
-msgid "Unknown AS number. Please upgrade this program."
-msgstr "Numero dell'AS sconosciuto. Per favore aggiorna il programma."
-
-#: ../whois.c:399
+#: ../whois.c:400
msgid "Warning: RIPE flags used with a traditional server."
msgstr "Attenzione: sono stati usati dei flag RIPE con un server tradizionale."
-#: ../whois.c:457
+#: ../whois.c:460
#, c-format
msgid "Detected referral to %s on %s.\n"
msgstr "Trovato un riferimento a %s su %s.\n"
-#: ../whois.c:474
+#: ../whois.c:477
msgid ""
"Catastrophic error: disclaimer text has been changed.\n"
"Please upgrade this program.\n"
@@ -109,22 +97,26 @@ msgstr ""
"Errore catastrofico: il testo di avvertenze θ cambiato.\n"
"Aggiorna questo programma.\n"
-#: ../whois.c:548
+#: ../whois.c:551
#, c-format
msgid "Host %s not found."
msgstr "Host %s non trovato."
-#: ../whois.c:558
+#: ../whois.c:561
#, c-format
msgid "%s/tcp: unknown service"
msgstr "%s/tcp: servizio sconosciuto"
-#: ../whois.c:575
+#: ../whois.c:573
+msgid "Timeout."
+msgstr "Tempo scaduto."
+
+#: ../whois.c:579
#, c-format
msgid "Interrupted by signal %d..."
msgstr "Interrotto dal segnale %d..."
-#: ../whois.c:620
+#: ../whois.c:628
msgid ""
"Usage: whois [OPTION]... OBJECT...\n"
"\n"
diff --git a/po/no.po b/po/no.po
index c61ca28..0497f70 100644
--- a/po/no.po
+++ b/po/no.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: whois 4.4.5\n"
-"POT-Creation-Date: 2002-11-16 04:27+0100\n"
+"POT-Creation-Date: 2002-11-28 21:21+0100\n"
"PO-Revision-Date: 1999-12-18 14:00:00\n"
"Last-Translator: Egil Kvaleberg <egil@kvaleberg.no>\n"
"Language-Team: Norwegian <no@li.org>\n"
@@ -22,30 +22,30 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: ../whois.c:151 ../whois.c:188
+#: ../whois.c:151 ../whois.c:202
#, c-format
msgid "Using server %s.\n"
msgstr "Bruker tjener %s.\n"
-#: ../whois.c:165
+#: ../whois.c:172
#, c-format
msgid "Using default server %s.\n"
msgstr "Bruker standardtjener %s.\n"
-#: ../whois.c:168
+#: ../whois.c:175
msgid "This TLD has no whois server, but you can access the whois database at"
msgstr ""
-#: ../whois.c:174
+#: ../whois.c:181
msgid "This TLD has no whois server."
msgstr ""
-#: ../whois.c:178
+#: ../whois.c:185
#, fuzzy
msgid "Connecting to whois.crsnic.net."
msgstr "Kobler opp mot whois.internic.net."
-#: ../whois.c:184
+#: ../whois.c:191
#, fuzzy, c-format
msgid ""
"\n"
@@ -56,7 +56,16 @@ msgstr ""
"Fant InterNIC-referanse til %s.\n"
"\n"
-#: ../whois.c:197
+#: ../whois.c:195
+msgid "No whois server is known for this kind of object."
+msgstr ""
+
+#: ../whois.c:198
+#, fuzzy
+msgid "Unknown AS number or IP network. Please upgrade this program."
+msgstr "Ukjent AS-nummer. Vennligst oppdater programmet."
+
+#: ../whois.c:211
#, c-format
msgid ""
"Query string: \"%s\"\n"
@@ -65,42 +74,22 @@ msgstr ""
"Forespψrsel: \"%s\"\n"
"\n"
-#: ../whois.c:247 ../whois.c:250
+#: ../whois.c:258 ../whois.c:261
#, c-format
msgid "Cannot parse this line: %s"
msgstr ""
-#: ../whois.c:330
-msgid ""
-"I don't know where this IP has been delegated.\n"
-"I'll try ARIN and hope for the best..."
-msgstr ""
-"Vet ikke hvor denne IP-adressen har blitt delegert.\n"
-"Prψver ARIN og hεper det beste..."
-
-#: ../whois.c:347
-msgid "I guess it's a netblock name but I don't know where to look it up."
-msgstr "Gjetter at det er et netblock-navn, men vet ikke hvor det finnes."
-
-#: ../whois.c:354
-msgid "I guess it's a domain but I don't know where to look it up."
-msgstr "Gjetter at det er er domene, men vet ikke hvor det finnes."
-
-#: ../whois.c:364
-msgid "Unknown AS number. Please upgrade this program."
-msgstr "Ukjent AS-nummer. Vennligst oppdater programmet."
-
-#: ../whois.c:399
+#: ../whois.c:400
#, fuzzy
msgid "Warning: RIPE flags used with a traditional server."
msgstr "Merk: RIPE-flaggene ignoreres for en tradisjonell tjener."
-#: ../whois.c:457
+#: ../whois.c:460
#, c-format
msgid "Detected referral to %s on %s.\n"
msgstr "Referanse til %s vedrψrende %s.\n"
-#: ../whois.c:474
+#: ../whois.c:477
#, fuzzy
msgid ""
"Catastrophic error: disclaimer text has been changed.\n"
@@ -109,22 +98,26 @@ msgstr ""
"Alvorlig feil: INTERNIC har endret standardtekst.\n"
"Vennligst oppdater programmet.\n"
-#: ../whois.c:548
+#: ../whois.c:551
#, c-format
msgid "Host %s not found."
msgstr "Finner ikke verten %s."
-#: ../whois.c:558
+#: ../whois.c:561
#, c-format
msgid "%s/tcp: unknown service"
msgstr "%s/tcp: ukjent port"
-#: ../whois.c:575
+#: ../whois.c:573
+msgid "Timeout."
+msgstr ""
+
+#: ../whois.c:579
#, c-format
msgid "Interrupted by signal %d..."
msgstr "Avbrudt av signal %d..."
-#: ../whois.c:620
+#: ../whois.c:628
#, fuzzy
msgid ""
"Usage: whois [OPTION]... OBJECT...\n"
@@ -249,3 +242,16 @@ msgstr ""
#: ../mkpasswd.c:260
msgid "Available algorithms:\n"
msgstr ""
+
+#~ msgid ""
+#~ "I don't know where this IP has been delegated.\n"
+#~ "I'll try ARIN and hope for the best..."
+#~ msgstr ""
+#~ "Vet ikke hvor denne IP-adressen har blitt delegert.\n"
+#~ "Prψver ARIN og hεper det beste..."
+
+#~ msgid "I guess it's a netblock name but I don't know where to look it up."
+#~ msgstr "Gjetter at det er et netblock-navn, men vet ikke hvor det finnes."
+
+#~ msgid "I guess it's a domain but I don't know where to look it up."
+#~ msgstr "Gjetter at det er er domene, men vet ikke hvor det finnes."
diff --git a/po/pl.po b/po/pl.po
index 97c7507..81e15e5 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: whois 4.4.5\n"
-"POT-Creation-Date: 2002-11-16 04:27+0100\n"
+"POT-Creation-Date: 2002-11-28 21:21+0100\n"
"PO-Revision-Date: 1999-12-18 14:00:00\n"
"Last-Translator: Micha³ 'CeFeK' Nazarewicz <cefek@career.pl>\n"
"Language-Team: Polish <pl@li.org>\n"
@@ -22,31 +22,31 @@ msgid ""
"Report bugs to %s.\n"
msgstr ""
-#: ../whois.c:151 ../whois.c:188
+#: ../whois.c:151 ../whois.c:202
#, c-format
msgid "Using server %s.\n"
msgstr "UΏywam serwera %s.\n"
-#: ../whois.c:165
+#: ../whois.c:172
#, c-format
msgid "Using default server %s.\n"
msgstr "Uzywam domy¶lnego serwera %s.\n"
-#: ../whois.c:168
+#: ../whois.c:175
msgid "This TLD has no whois server, but you can access the whois database at"
msgstr ""
-#: ../whois.c:174
+#: ../whois.c:181
#, fuzzy
msgid "This TLD has no whois server."
msgstr "Nie ma serwera whois dla tej domeny."
-#: ../whois.c:178
+#: ../whois.c:185
#, fuzzy
msgid "Connecting to whois.crsnic.net."
msgstr "£±czenie z hostem whois.internic.net."
-#: ../whois.c:184
+#: ../whois.c:191
#, fuzzy, c-format
msgid ""
"\n"
@@ -57,7 +57,16 @@ msgstr ""
"Znaleziono odniesienie z InterNIC do %s.\n"
"\n"
-#: ../whois.c:197
+#: ../whois.c:195
+msgid "No whois server is known for this kind of object."
+msgstr ""
+
+#: ../whois.c:198
+#, fuzzy
+msgid "Unknown AS number or IP network. Please upgrade this program."
+msgstr "Nieznany numer AS. Zainstaluj nowsz± wersjκ programu."
+
+#: ../whois.c:211
#, c-format
msgid ""
"Query string: \"%s\"\n"
@@ -66,42 +75,22 @@ msgstr ""
"Zapytanie: \"%s\"\n"
"\n"
-#: ../whois.c:247 ../whois.c:250
+#: ../whois.c:258 ../whois.c:261
#, c-format
msgid "Cannot parse this line: %s"
msgstr ""
-#: ../whois.c:330
-msgid ""
-"I don't know where this IP has been delegated.\n"
-"I'll try ARIN and hope for the best..."
-msgstr ""
-"Nie moΏna ustaliζ, do kogo ten adres IP zosta³ oddelegowany.\n"
-"Sprσbujκ ARIN i mam nadziejκ, Ώe siκ uda..."
-
-#: ../whois.c:347
-msgid "I guess it's a netblock name but I don't know where to look it up."
-msgstr "To nazwa bloku sieciowego, ale nie wiem, pod jak± nazw± szukaζ."
-
-#: ../whois.c:354
-msgid "I guess it's a domain but I don't know where to look it up."
-msgstr "To nazwa domeny, ale nie wiem, gdzie jej szukaζ."
-
-#: ../whois.c:364
-msgid "Unknown AS number. Please upgrade this program."
-msgstr "Nieznany numer AS. Zainstaluj nowsz± wersjκ programu."
-
-#: ../whois.c:399
+#: ../whois.c:400
#, fuzzy
msgid "Warning: RIPE flags used with a traditional server."
msgstr "Uwaga: flagi RIPE s± ignorowane dla starszych serwerσw."
-#: ../whois.c:457
+#: ../whois.c:460
#, c-format
msgid "Detected referral to %s on %s.\n"
msgstr "Wykryto odniesienie do %s na %s.\n"
-#: ../whois.c:474
+#: ../whois.c:477
msgid ""
"Catastrophic error: disclaimer text has been changed.\n"
"Please upgrade this program.\n"
@@ -109,22 +98,26 @@ msgstr ""
"Katastrofa! Tekst disclaimera zosta³ zmieniony.\n"
"¦ci±gnij nowsz± wersjκ programu.\n"
-#: ../whois.c:548
+#: ../whois.c:551
#, c-format
msgid "Host %s not found."
msgstr "Serwer %s nie zosta³ znaleziony."
-#: ../whois.c:558
+#: ../whois.c:561
#, c-format
msgid "%s/tcp: unknown service"
msgstr "%s/tcp: us³uga nieznana"
-#: ../whois.c:575
+#: ../whois.c:573
+msgid "Timeout."
+msgstr ""
+
+#: ../whois.c:579
#, c-format
msgid "Interrupted by signal %d..."
msgstr "Przerwanie na sygna³ %d..."
-#: ../whois.c:620
+#: ../whois.c:628
#, fuzzy
msgid ""
"Usage: whois [OPTION]... OBJECT...\n"
@@ -246,3 +239,16 @@ msgstr ""
#: ../mkpasswd.c:260
msgid "Available algorithms:\n"
msgstr ""
+
+#~ msgid ""
+#~ "I don't know where this IP has been delegated.\n"
+#~ "I'll try ARIN and hope for the best..."
+#~ msgstr ""
+#~ "Nie moΏna ustaliζ, do kogo ten adres IP zosta³ oddelegowany.\n"
+#~ "Sprσbujκ ARIN i mam nadziejκ, Ώe siκ uda..."
+
+#~ msgid "I guess it's a netblock name but I don't know where to look it up."
+#~ msgstr "To nazwa bloku sieciowego, ale nie wiem, pod jak± nazw± szukaζ."
+
+#~ msgid "I guess it's a domain but I don't know where to look it up."
+#~ msgstr "To nazwa domeny, ale nie wiem, gdzie jej szukaζ."
diff --git a/tld_serv_list b/tld_serv_list
index a4cdbe8..75961b6 100644
--- a/tld_serv_list
+++ b/tld_serv_list
@@ -4,12 +4,14 @@
#
.br.com whois.centralnic.net
.cn.com whois.centralnic.net
+.de.com whois.centralnic.net
.eu.com whois.centralnic.net
.gb.com whois.centralnic.net
.gb.net whois.centralnic.net
.hu.com whois.centralnic.net
.no.com whois.centralnic.net
.qc.com whois.centralnic.net
+.ru.com whois.centralnic.net
.sa.com whois.centralnic.net
.se.com whois.centralnic.net
.se.net whois.centralnic.net
@@ -36,19 +38,19 @@
.pro whois.nic.pro
.ac whois.nic.ac
.ad NONE # www.nic.ad
-.ae WEB http://www.uaenic.ae/
+.ae whois.uaenic.ae
.af NONE # was whois.nic.af
.ag whois.nic.ag
-.ai NONE # http://www.offshore.com.ai/domain_names/
+.ai WEB http://whois.offshore.ai/
.al NONE # http://www.inima.al/Domains.html
.am whois.amnic.net # down?
.am WEB https://www.amnic.net/whois/
.an NONE # http://www.una.net/an_domreg/
.ao NONE # www.dns.ao
.aq NONE # 2day.com
-.ar WEB http://www.nic.ar/consultas/consdom.htm
+.ar WEB http://www.nic.ar/consultas/consdom.html
.as whois.nic.as
-.at whois.aco.net
+.at whois.nic.at
.asn.au whois.ausregistry.net.au
.com.au whois.ausregistry.net.au
.id.au whois.ausregistry.net.au
@@ -59,20 +61,20 @@
.az NONE # www.nic.az
.ba NONE # http://www.utic.net.ba/domen/
.bb WEB http://domains.org.bb/regsearch/
-.bd NONE # NIC?
+.bd NONE # http://www.bttb.net/
.be whois.dns.be
-.bf NONE # http://www.onatel.bf/domaine.htm
+.bf NONE # NIC? http://www.onatel.bf/
.bg whois.ripe.net
#.bh NONE # NIC? www.inet.com.bh
-.bi WEB http://www.nic.bi/cgi-bin/whoisbi.pl
+.bi WEB http://www.nic.bi/Nic_search.asp
#.bj # NIC? www.opt.bj
.bm WEB http://www.bermudanic.bm/cgi-bin/BermudaNIC/rwhois_query.pl # rwhois.bermudanic.bm:4321
#.bn NONE # NIC? www.brunet.bn
-.bo NONE # www.nic.bo
+.bo WEB http://www.nic.bo/
.br whois.nic.br
.bs WEB http://www.nic.bs/cgi-bin/search.pl
-.bt NONE
-.bv NONE # http://www.uninett.no/navn/bv-sj.html
+.bt WEB http://www.nic.bt/
+.bv NONE # http://www.norid.no/domenenavnbaser/bv-sj.html
#.bw # NIC? www.botsnet.bw btc.bw
.by WEB http://www.tld.by/indexeng.html
.bz whois.belizenic.bz
@@ -90,9 +92,9 @@
.edu.cn whois.edu.cn
.cn whois.cnnic.net.cn
.uk.co whois.uk.co
-.co WEB http://daimon.uniandes.edu.co:8890/dominio/plsql/PConsulta.ConsultarDominio
+.co WEB https://www.nic.co/
.cr WEB http://www.nic.cr/consulta-dns.html
-.cu WEB http://www.nic.cu/consultas/consult.html
+.cu WEB http://www.nic.cu/consult.html
#.cv # NIC? dns.cv?
.cx whois.nic.cx
.cy NONE # www.nic.cy
@@ -101,36 +103,36 @@
.dj NONE # www.nic.dj (NOT YET)
.dk whois.dk-hostmaster.dk
.dm NONE # www.domains.dm ?
-.do WEB http://www.nic.do
-.dz NONE
+.do WEB http://www.nic.do/whois-h.php3
+.dz WEB http://www.nic.dz/anglais/dom-attr-eng.htm
.ec WEB http://www.nic.ec/consulta/whois.asp
.ee whois.eenet.ee
.eg NONE # http://www.ise.org.eg/domain.htm
#.eh
.er NONE # NO NIC http://www.afridns.org/er/
-.es WEB http://www.nic.es/whois/
+.es WEB http://www.nic.es/cgi-bin/consulta.whois
#.et NONE # NIC? www.telecom.net.et
.fi WEB http://cgi.ficora.fi/wwwbin/domains.pl?language=eng
.fj whois.usp.ac.fj
.fk NONE # http://www.fidc.org.fk/domain-registration/home.htm
-.fm WEB http://www.nic.fm/register.html
+.fm WEB http://www.dot.fm/whois.html
.fo whois.ripe.net # www.nic.fo
.fr whois.nic.fr
#.fx
#.ga # NIC? www.inet.ga
.gb NONE
#.gd # NO NIC (UPR)
-.ge WEB http://www.nic.net.ge
+.ge WEB http://whois.sanet.ge/
.gf whois.nplus.gf
.gg whois.channelisles.net
-.gh NONE # http://www.ghana.com/domreg.html
-.gi NONE # http://www.gibnet.gi/nic/
-.gl whois.ripe.net
+.gh NONE # http://www.ghana.com.gh/domain.htm
+.gi WEB http://whois.gibnet.gi/
+.gl whois.ripe.net # www.nic.gl
.gm whois.ripe.net # www.nic.gm
.gn NONE # http://www.psg.com/dns/gn/
#.gp # www.nic.gp - broken like mq
-#.gq # NO NIC http://www.intnet.gq
-.gr WEB https://grweb.ics.forth.gr/english/index.html
+#.gq # NO NIC http://www.intnet.gq/ http://www.getesa.gq/
+.gr WEB https://grweb.ics.forth.gr/english/
.gs whois.adamsnames.tc
.gt WEB http://www.gt/whois.htm
.gu WEB http://gadao.gov.gu/Scripts/wwsquery/wwsquery.dll?hois=guamquery
@@ -154,7 +156,7 @@
.it whois.nic.it
.je whois.channelisles.net
#.jm # NIC? uwimona.edu.jm http://nic.jm
-.jo WEB http://amon.nic.gov.jo/dns/
+.jo WEB http://www.nis.jo/dns/ # old: http://amon.nic.gov.jo/dns/
.jp whois.nic.ad.jp
.ke NONE # http://www.nbnet.co.ke/domain.htm
.kg whois.domain.kg
@@ -163,7 +165,7 @@
.km NONE # NO NIC
#.kn # NO NIC (UPR)
#.kp
-.kr whois.krnic.net
+.kr whois.nic.or.kr
.kw WEB http://www.domainname.net.kw
.ky WEB http://146.115.157.215/whoisfrontend.asp
.kz whois.domain.kz
@@ -175,8 +177,8 @@
.lr NONE # http://www.psg.com/dns/lr/
.ls NONE # NIC?
.lt whois.ripe.net
-.lu whois.restena.lu
-.lv whois.ripe.net
+.lu whois.dns.lu
+.lv whois.nic.lv
.ly WEB http://www.lydomains.com/whois.asp
#.ma # NIC? http://www.anrt.net.ma/
.mc whois.ripe.net
@@ -186,16 +188,16 @@
#.mk # NIC? http://www.mpt.com.mk
#.ml # NIC? www.sotelma.ml
.mm whois.nic.mm
-.mn WEB http://whois.nic.mn
-.mo WEB http://www.monic.net.mo # whois.umac.mo
+.mn WEB http://whois.nic.mn/
+.mo WEB http://www.monic.net.mo/ # whois.umac.mo
.mp NONE # www.marketplace.mp
#.mq # www.nic.mq broken like gp
.mr NONE # http://www.univ-nkc.mr/nic_mr.html
.ms whois.adamsnames.tc
-.mt WEB http://www.um.edu.mt/nic/dir/
-.mu WEB http://www.nic.mu/cgi-bin/mu_whois.cgi
+.mt WEB http://www.nic.org.mt/dir/home.html
+.mu WEB http://www.nic.mu/mauritius/domain.whois.php
#.mv # NIC? dhiraagu.com.mv
-.mw WEB http://www.tarsus.net/whois/
+.mw WEB http://www.registrar.mw/
.mx whois.nic.mx
.my WEB http://www.mynic.net.my/newhp/mynic-lookup.htm
#.mz # NIC? www.uem.mz
@@ -208,20 +210,20 @@
.nl whois.domain-registry.nl
.no whois.norid.no
.np WEB http://www.mos.com.np/domsearch.html
-#.nr # NIC? www.cenpan.net.nr
+.nr WEB http://www.cenpac.net.nr/dns/whois.html
.nu whois.nic.nu
.nz whois.srs.net.nz
-#.om NONE # NIC? http://www.gto.net.om
-.pa WEB http://www.nic.pa
+#.om NONE # NIC? http://www.gto.net.om http://www.omantel.net.om/
+.pa WEB http://www.nic.pa/
.pe whois.nic.pe
#.pf # NIC? mana.pf
.pg NONE # http://www.unitech.ac.pg/Unitech_General/ITS/ITS_Dns.htm
-.ph WEB http://www.names.ph/search.html
-.pk WEB www.pknic.net.pk
+.ph WEB http://www.domains.ph/DomainSearch.asp
+.pk WEB http://www.pknic.net.pk/
.pl whois.dns.pl
.pm whois.nic.fr
-.pn NONE # 2day.com www.nic.pn
-.pr NONE # http://www.uprr.pr/main.html
+.pn WEB http://www.pitcairn.pn/PnRegistry/CheckAvailability.html
+.pr NONE # http://www.uprr.pr/
.ps WEB http://www.nic.ps/whois/
.pt NONE # www.dns.pt
.pw whois.nic.pw
@@ -231,15 +233,15 @@
.ro whois.rotld.ro
.ru whois.ripn.net
.rw WEB http://www.nic.rw/cgi-bin/whoisrw.pl
-.sa WEB http://www.saudinic.net.sa/domain/whois.htm
-.sb WEB http://www.sbnic.net.sb/search.html
+.sa saudinic.net.sa
+.sb WEB http://www.nic.net.sb/search.htm
.sc NONE # www.nic.sc
#.sd # NIC? http://www.sudatel.sd
.se whois.nic-se.se
.sg whois.nic.net.sg
.sh whois.nic.sh
.si whois.arnes.si
-.sj NONE # http://www.uninett.no/navn/bv-sj.html
+.sj NONE # http://www.norid.no/domenenavnbaser/bv-sj.html
.sk whois.ripe.net
#.sl # NIC? http://www.sierratel.sl/
.sm whois.ripe.net
@@ -250,24 +252,24 @@
.su whois.ripn.net
.sv WEB http://www.uca.edu.sv/dns/ # http://www.svnet.org.sv/
#.sy # NIC? (usually offline?)
-.sz NONE # http://www.iafrica.sz/domreg/
+.sz NONE # http://www.sispa.org.sz/
.tc whois.adamsnames.tc
#.td # NIC? http://www.tit.td
.tf whois.adamsnames.tc
-.tg WEB http://www.nic.tg
+.tg WEB http://www.nic.tg/
.th whois.thnic.net
.tj whois.nic.tj
.tk whois.dot.tk
-.tm NONE
+.tm NONE # www.nic.tm
.tn NONE # http://www.ati.tn/Nic/
.to whois.tonic.to
-.tp NONE # www.nic.tp
+.tp WEB http://cgi.connect.ie/cgi-bin/tplookup.cgi
.tr whois.metu.edu.tr
.tt WEB http://www.nic.tt/cgi-bin/search.pl
.tv whois.tv
.tw whois.twnic.net
.tz NONE # http://www.psg.com/dns/tz/
-.ua whois.com.ua
+.ua whois.net.ua
.ug www.registry.co.ug
.gov.uk whois.ja.net
.ac.uk whois.ja.net
@@ -276,15 +278,15 @@
.fed.us whois.nic.gov
.us whois.nic.us
.com.uy WEB http://dns.antel.net.uy/clientes/consultar.htm
-.uy WEB http://www.rau.edu.uy/rau/dom/reg.htm
-#.uz # www.noc.uz (broken)
+.uy WEB http://www.rau.edu.uy/rau/dom/
+.uz WEB http://www.noc.uz/
.va whois.ripe.net
.vc whois.opensrs.net
.ve WEB http://www.nic.ve/nicwho01.html # rwhois.reacciun.ve:4321
.vg whois.adamsnames.tc
-.vi WEB http://208.30.96.227/whoisform.htm
+.vi WEB http://www.nic.vi/whoisform.htm
.vn WEB http://www.vnnic.net.vn/english/reg_domain/
-.vu WEB http://www.vunic.vu/whois
+.vu WEB http://www.vunic.vu/whois.htm
#.wf # NIC-FR!
.ws whois.samoanic.ws
#.ye # NIC? www.y.net.ye
diff --git a/whois.1 b/whois.1
index 5b65381..9f3509f 100644
--- a/whois.1
+++ b/whois.1
@@ -25,10 +25,8 @@ whois \- client for the whois directory service
This version of the whois client tries to guess the right server to
ask for the specified object. If no guess can be made it will connect
-to whois.internic.net for domains,
-.\" whois.networksolutions.com for nic handles,
-whois.arin.net for IPv4 addresses and whois.6bone.net for
-IPv6 addresses.
+to whois.networksolutions.com for nic handles or whois.arin.net for
+IPv4 addresses and network names.
.PP
.SH OPTIONS
.TP 8
@@ -50,11 +48,8 @@ Display online help.
Other options are flags understood by RIPE-like servers.
.SH NOTES
Please remember that \fIwhois.networksolutions.com\fP by default will
-only search in the domains database. If you want to search for hostnames,
-NIC handles or people names you have to prepend the appropriate keyword
-(\fIHO\fPst, \fIHA\fPndle or \fINA\fPme).
-.P
-If the \fI!\fP character is prepended to a NIC handle, the default
+only search in the domains database. If you want to search for NIC handles
+you have to prepend a \fI!\fP character. When you do this, the default
server becomes \fIwhois.networksolutions.com\fP.
.P
When querying \fIwhois.nic.mil\fP for AS numbers, the program will
@@ -71,9 +66,9 @@ RIPE-specific options are ignored when querying non-RIPE servers.
When querying \fIwhois.nic.ad.jp\fP english text is requested unless the
\fILANG\fP environment variable specifies a Japanese locale.
.IP "WHOIS_SERVER"
-This server will be queried if the program cannot guess where the object
-is located. If the variable does not exist then
-\fIwhois.internic.net\fP will be queried.
+This server will be queried if the program cannot guess where some kind
+of objects are located. If the variable does not exist then
+\fIwhois.arin.net\fP will be queried.
.IP "WHOIS_HIDE"
If this variable is defined, legal disclaimers will be hidden even if
the \fI-H\fP flag is not used.
diff --git a/whois.c b/whois.c
index 61fbf16..f79cca9 100644
--- a/whois.c
+++ b/whois.c
@@ -152,11 +152,18 @@ int main(int argc, char *argv[])
}
#endif
+ signal(SIGTERM, sighandler);
+ signal(SIGINT, sighandler);
+ signal(SIGALRM, alarm_handler);
+ alarm(60);
+
if (!server) {
char *tmp;
+
tmp = normalize_domain(qstring);
server = whichwhois(tmp);
free(tmp);
+
switch (server[0]) {
case 0:
if (!(server = getenv("WHOIS_SERVER")))
@@ -178,11 +185,18 @@ int main(int argc, char *argv[])
puts(_("Connecting to whois.crsnic.net."));
sockfd = openconn("whois.crsnic.net", NULL);
server = query_crsnic(sockfd, qstring);
- closeconn(sockfd);
+ close(sockfd);
if (!server)
exit(0);
printf(_("\nFound crsnic referral to %s.\n\n"), server);
+ alarm(60);
break;
+ case 5:
+ puts(_("No whois server is known for this kind of object."));
+ exit(0);
+ case 6:
+ puts(_("Unknown AS number or IP network. Please upgrade this program."));
+ exit(0);
default:
if (verb)
printf(_("Using server %s.\n"), server);
@@ -197,9 +211,6 @@ int main(int argc, char *argv[])
printf(_("Query string: \"%s\"\n\n"), p);
strcat(p, "\r\n");
- signal(SIGTERM, sighandler);
- signal(SIGINT, sighandler);
-
sockfd = openconn(server, port);
do_query(sockfd, p);
@@ -284,28 +295,25 @@ const char *whichwhois(const char *s)
/* IPv6 address */
if (strchr(s, ':')) {
- if (strncmp(s, "2001:2", 6) == 0 || /* XXX ugly hack! */
- strncmp(s, "2001:02", 6) == 0 ||
- strncasecmp(s, "2001:A", 6) == 0 ||
- strncasecmp(s, "2001:0A", 6) == 0 ||
- strncasecmp(s, "2001:C", 6) == 0 ||
- strncasecmp(s, "2001:0C", 6) == 0)
- return "whois.apnic.net";
- if (strncmp(s, "2001:4", 6) == 0 ||
- strncmp(s, "2001:04", 6) == 0)
- return "whois.arin.net";
- if (strncmp(s, "2001:6", 6) == 0 ||
- strncmp(s, "2001:06", 6) == 0 ||
- strncmp(s, "2001:8", 6) == 0 ||
- strncmp(s, "2001:08", 6) == 0)
- return "whois.ripe.net";
- /* if (strncasecmp(s, "3ffe", 4) == 0) */
+ if (strncmp(s, "2001:", 5) == 0) {
+ unsigned long v6net = strtol(s + 5, NULL, 16);
+ v6net = v6net & 0xfe00; /* we care about the first 7 bits */
+ for (i = 0; ip6_assign[i].serv; i++)
+ if (v6net == ip6_assign[i].net)
+ return ip6_assign[i].serv;
+ return "\006"; /* unknown allocation */
+ } else if (strncasecmp(s, "3ffe:", 5) == 0)
return "whois.6bone.net";
+ /* RPSL objects like AS8627:fltr-TRANSIT-OUT */
+ else if (strncasecmp(s, "as", 2) == 0 && isasciidigit(s[2]))
+ return whereas(atoi(s + 2));
+ else
+ return "\005";
}
/* email address */
if (strchr(s, '@'))
- return "";
+ return "\005";
/* no dot and no hyphen means it's a NSI NIC handle or ASN (?) */
if (!strpbrk(s, ".-")) {
@@ -313,14 +321,14 @@ const char *whichwhois(const char *s)
for (p = s; *p; p++); /* go to the end of s */
if (strncasecmp(s, "as", 2) == 0 && /* it's an AS */
- ((s[2] >= '0' && s[2] <= '9') || s[2] == ' '))
- return whereas(atoi(s + 2), as_assign);
+ (isasciidigit(s[2]) || s[2] == ' '))
+ return whereas(atoi(s + 2));
else if (strncasecmp(p - 2, "jp", 2) == 0) /* JP NIC handle */
return "whois.nic.ad.jp";
- if (*p == '!') /* NSI NIC handle */
+ if (*s == '!') /* NSI NIC handle */
return "whois.networksolutions.com";
- else /* it's a NSI NIC handle or something we don't know about */
- return "";
+ else
+ return "\005"; /* probably a unknown kind of nic handle */
}
/* smells like an IP? */
@@ -328,13 +336,10 @@ const char *whichwhois(const char *s)
for (i = 0; ip_assign[i].serv; i++)
if ((ip & ip_assign[i].mask) == ip_assign[i].net)
return ip_assign[i].serv;
- if (verb)
- puts(_("I don't know where this IP has been delegated.\n"
- "I'll try ARIN and hope for the best..."));
- return "whois.arin.net";
+ return "\005"; /* not in the unicast IPv4 space */
}
- /* check TLD list */
+ /* check the TLDs list */
for (i = 0; tld_serv[i]; i += 2)
if (domcmp(s, tld_serv[i]))
return tld_serv[i + 1];
@@ -345,29 +350,23 @@ const char *whichwhois(const char *s)
for (i = 0; nic_handles[i]; i += 2)
if (strncasecmp(s, nic_handles[i], strlen(nic_handles[i])) == 0)
return nic_handles[i + 1];
- if (verb)
- puts(_("I guess it's a netblock name but I don't know where to"
- " look it up."));
- return "whois.arin.net";
+ /* it's probably a network name */
+ return "";
}
- /* has dot and hypen and it's not in tld_serv[], WTF is it? */
- if (verb)
- puts(_("I guess it's a domain but I don't know where to look it"
- " up."));
- return "";
+ /* has dot and maybe a hypen and it's not in tld_serv[], WTF is it? */
+ /* either a TLD or a NIC handle we don't know about yet */
+ return "\005";
}
-const char *whereas(int asn, struct as_del aslist[])
+const char *whereas(const unsigned short asn)
{
int i;
- if (asn > 28671)
- puts(_("Unknown AS number. Please upgrade this program."));
- else for (i = 0; aslist[i].serv; i++)
- if (asn >= aslist[i].first && asn <= aslist[i].last)
- return aslist[i].serv;
- return "whois.arin.net";
+ for (i = 0; as_assign[i].serv; i++)
+ if (asn >= as_assign[i].first && asn <= as_assign[i].last)
+ return as_assign[i].serv;
+ return "\006";
}
char *queryformat(const char *server, const char *flags, const char *query)
@@ -402,9 +401,11 @@ char *queryformat(const char *server, const char *flags, const char *query)
strcat(buf, flags);
}
if (!isripe && strcmp(server, "whois.nic.mil") == 0 &&
- strncasecmp(query, "AS", 2) == 0 &&
- query[2] >= '0' && query[2] <= '9')
+ strncasecmp(query, "AS", 2) == 0 && isasciidigit(query[2]))
sprintf(buf, "AS %s", query + 2); /* fix query for DDN */
+ if (!isripe && strcmp(server, "whois.arin.net") == 0 &&
+ strncasecmp(query, "AS", 2) == 0 && isasciidigit(query[2]))
+ sprintf(buf, "A %s", query + 2); /* always ask for a ASN */
else if (!isripe && strcmp(server, "whois.corenic.net") == 0)
sprintf(buf, "--machine %s", query); /* machine readable output */
else if (!isripe && strcmp(server, "whois.nic.ad.jp") == 0) {
@@ -566,14 +567,15 @@ int openconn(const char *server, const char *port)
return fd;
}
-void closeconn(const int fd)
+void alarm_handler(int signum)
{
- close(fd);
+ close(sockfd);
+ err_quit(_("Timeout."));
}
void sighandler(int signum)
{
- closeconn(sockfd);
+ close(sockfd);
err_quit(_("Interrupted by signal %d..."), signum);
}
@@ -614,6 +616,10 @@ unsigned long myinet_aton(const char *s)
return (a << 24) + (b << 16) + (c << 8) + d;
}
+int isasciidigit(const char c) {
+ return (c >= '0' && c <= '9') ? 1 : 0;
+}
+
/* http://www.ripe.net/ripe/docs/databaseref-manual.html */
void usage(void)
diff --git a/whois.h b/whois.h
index 6864775..d209601 100644
--- a/whois.h
+++ b/whois.h
@@ -3,20 +3,21 @@
/* String sent to RIPE servers - ONLY FIVE CHARACTERS! */
/* Do *NOT* change it if you don't know what you are doing! */
-#define IDSTRING "Md4.5"
+#define IDSTRING "Md4.6"
/* prototypes */
const char *whichwhois(const char *);
const char *match_config_file(const char *);
-const char *whereas(int, struct as_del []);
+const char *whereas(const unsigned short);
char *queryformat(const char *, const char *, const char *);
void do_query(const int, const char *);
const char *query_crsnic(const int, const char *);
int openconn(const char *, const char *);
-void closeconn(const int);
void usage(void);
+void alarm_handler(int);
void sighandler(int);
unsigned long myinet_aton(const char *);
+int isasciidigit(const char);
int domcmp(const char *, const char *);
int domfind(const char *, const char *[]);
char *normalize_domain(const char *);
diff --git a/whois.spec b/whois.spec
index 5146bce..fae659c 100644
--- a/whois.spec
+++ b/whois.spec
@@ -1,6 +1,6 @@
Summary: Enhanced WHOIS client
Name: whois
-Version: 4.5.32
+Version: 4.6.0
Release: 1
License: GPL
Vendor: Marco d'Itri <md@linux.it>