mirror of
https://github.com/rfc1036/whois.git
synced 2026-05-03 06:51:09 +00:00
Merge branch 'master' into wheezy-backports
This commit is contained in:
commit
068d4cc80d
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,5 +1,6 @@
|
||||
*_del.h
|
||||
new_gtlds.h
|
||||
nic_handles.h
|
||||
tld_serv.h
|
||||
servers_charset.h
|
||||
version.h
|
||||
|
||||
5
Makefile
5
Makefile
@ -87,6 +87,9 @@ ip6_del.h: ip6_del_list make_ip6_del.pl
|
||||
new_gtlds.h: new_gtlds_list make_new_gtlds.pl
|
||||
$(PERL) make_new_gtlds.pl < $< > $@
|
||||
|
||||
nic_handles.h: nic_handles_list make_nic_handles.pl
|
||||
$(PERL) make_nic_handles.pl < $< > $@
|
||||
|
||||
tld_serv.h: tld_serv_list make_tld_serv.pl
|
||||
$(PERL) make_tld_serv.pl < $< > $@
|
||||
|
||||
@ -118,7 +121,7 @@ distclean: clean
|
||||
|
||||
clean:
|
||||
rm -f Makefile.depend as_del.h as32_del.h ip_del.h ip6_del.h \
|
||||
tld_serv.h servers_charset.h *.o whois mkpasswd
|
||||
new_gtlds.h tld_serv.h servers_charset.h *.o whois mkpasswd
|
||||
rm -f po/*.mo
|
||||
|
||||
pos:
|
||||
|
||||
9
config.h
9
config.h
@ -81,6 +81,15 @@
|
||||
# define RANDOM_DEVICE "/dev/urandom"
|
||||
#endif
|
||||
|
||||
/* use arc4random_buf instead if it is available */
|
||||
#if (defined __FreeBSD__ && __FreeBSD__ >= 9) || \
|
||||
(defined __NetBSD__ && __NetBSD_Version__ >= 600000000) || \
|
||||
(defined OpenBSD && OpenBSD >= 200805) || \
|
||||
(defined __APPLE__ && defined __MACH__)
|
||||
# define HAVE_ARC4RANDOM_BUF
|
||||
# undef RANDOM_DEVICE
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_NLS
|
||||
# ifndef NLS_CAT_NAME
|
||||
# define NLS_CAT_NAME "whois"
|
||||
|
||||
9
data.h
9
data.h
@ -11,17 +11,13 @@ const char *ripe_servers[] = {
|
||||
"whois.apnic.net",
|
||||
"whois.afrinic.net",
|
||||
"rr.arin.net", /* does not accept the old syntax */
|
||||
"whois.6bone.net", /* 3.0.0b1 */
|
||||
"whois.connect.com.au", /* 3.0.0b1 */
|
||||
"whois.nic.fr",
|
||||
"whois.telstra.net",
|
||||
"whois.restena.lu",
|
||||
"rr.level3.net", /* 3.0.0a13 */
|
||||
"whois.ripn.net",
|
||||
"whois.arnes.si",
|
||||
"www.registry.co.ug",
|
||||
"whois.nic.ir",
|
||||
"whois.nic.ck",
|
||||
"whois.ra.net",
|
||||
"whois.bgpmon.net",
|
||||
NULL
|
||||
@ -159,6 +155,11 @@ const char *tld_serv[] = {
|
||||
NULL, NULL
|
||||
};
|
||||
|
||||
const char *nic_handles_post[] = {
|
||||
#include "nic_handles.h"
|
||||
NULL, NULL
|
||||
};
|
||||
|
||||
#ifdef HAVE_ICONV
|
||||
struct server_charset {
|
||||
const char *name;
|
||||
|
||||
33
debian/changelog
vendored
33
debian/changelog
vendored
@ -1,8 +1,35 @@
|
||||
whois (5.2.0~bpo70+1) wheezy-backports; urgency=medium
|
||||
whois (5.2.3) unstable; urgency=medium
|
||||
|
||||
* Rebuilt for wheezy.
|
||||
* Added the .gw TLD server.
|
||||
* Updated the .bm, .gr, .gt, .md, .np, .py, .tc, .tg, .vi, .net.za,
|
||||
.org.za and .web.za TLD servers. (Closes: #773489)
|
||||
* Removed the .cg TLD server.
|
||||
* Updated the list of new gTLDs.
|
||||
* mkpasswd: use arc4random_buf(3) where available.
|
||||
* mkpasswd: support OpenBSD's new hash 2b.
|
||||
* Updated some IPv4 allocations.
|
||||
* Remove the new_gtlds.h generated file from the Debian source package.
|
||||
|
||||
-- Marco d'Itri <md@linux.it> Sun, 14 Sep 2014 13:30:49 +0200
|
||||
-- Marco d'Itri <md@linux.it> Fri, 26 Dec 2014 20:12:24 +0100
|
||||
|
||||
whois (5.2.2) unstable; urgency=medium
|
||||
|
||||
* Fixed the code that removes trailing dots. (Closes: #763834)
|
||||
* Added the .xn--d1alf (.мкд, Macedonia) and .xn--node (.გე, Georgia)
|
||||
TLD servers.
|
||||
* Updated the list of new gTLDs.
|
||||
|
||||
-- Marco d'Itri <md@linux.it> Thu, 06 Nov 2014 03:47:43 +0100
|
||||
|
||||
whois (5.2.1) unstable; urgency=medium
|
||||
|
||||
* Added the .aw and .zm TLD servers.
|
||||
* Added the charset for whois.domain.kg.
|
||||
* Updated the list of new gTLDs.
|
||||
* Queries for bare TLDs will be directed to whois.iana.org.
|
||||
(Closes: #763833)
|
||||
|
||||
-- Marco d'Itri <md@linux.it> Thu, 16 Oct 2014 02:01:20 +0200
|
||||
|
||||
whois (5.2.0) unstable; urgency=medium
|
||||
|
||||
|
||||
2
debian/control
vendored
2
debian/control
vendored
@ -2,7 +2,7 @@ Source: whois
|
||||
Section: net
|
||||
Priority: standard
|
||||
Maintainer: Marco d'Itri <md@linux.it>
|
||||
Standards-Version: 3.9.5
|
||||
Standards-Version: 3.9.6
|
||||
Build-Depends: debhelper (>= 5), gettext, libidn11-dev
|
||||
Vcs-Git: git://github.com/rfc1036/whois.git
|
||||
Vcs-Browser: https://github.com/rfc1036/whois
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
39.0.0.0/8 apnic
|
||||
41.0.0.0/8 afrinic
|
||||
42.0.0.0/8 apnic
|
||||
43.224.0.0/11 apnic
|
||||
43.0.0.0/8 whois.nic.ad.jp
|
||||
46.0.0.0/8 ripe
|
||||
49.0.0.0/8 apnic
|
||||
@ -149,11 +150,6 @@
|
||||
196.0.0.0/7 afrinic
|
||||
198.0.0.0/7 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
|
||||
200.96.0.0/13 whois.nic.br
|
||||
200.128.0.0/9 whois.nic.br
|
||||
200.0.0.0/7 lacnic
|
||||
202.11.0.0/16 whois.nic.ad.jp
|
||||
202.13.0.0/16 whois.nic.ad.jp
|
||||
|
||||
@ -9,8 +9,8 @@ while (<>) {
|
||||
s/^\s+//; s/\s+$//;
|
||||
next if /^$/;
|
||||
|
||||
die "format error: $_" if not /^((?:xn--)?[a-z0-9]+)$/;
|
||||
die "format error: $_" if not /^(xn--[a-z0-9-]+|[a-z]+)$/;
|
||||
|
||||
print qq| ".$_",\n|;
|
||||
print qq| "$_",\n|;
|
||||
}
|
||||
|
||||
|
||||
17
make_nic_handles.pl
Executable file
17
make_nic_handles.pl
Executable file
@ -0,0 +1,17 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use warnings;
|
||||
use strict;
|
||||
|
||||
while (<>) {
|
||||
chomp;
|
||||
s/#.*$//;
|
||||
s/^\s+//; s/\s+$//;
|
||||
next if /^$/;
|
||||
|
||||
die "format error: $_" if not
|
||||
(my ($a, $b) = /^(-\w+)\s+([\w\d\.:-]+)$/);
|
||||
|
||||
print qq| "$a",\t"$b",\n|;
|
||||
}
|
||||
|
||||
@ -10,7 +10,7 @@ while (<>) {
|
||||
next if /^$/;
|
||||
|
||||
die "format error: $_" if not
|
||||
(my ($a, $b) = /^([\w\d\.-]+)\s+([\w\d\.:-]+|[A-Z]+\s+.*)$/);
|
||||
(my ($a, $b) = /^\.(\w[\w\d\.-]+)\s+([\w\d\.:-]+|[A-Z]+\s+.*)$/);
|
||||
|
||||
$b =~ s/^W(?:EB)?\s+/\\x01/;
|
||||
$b =~ s/^VERISIGN\s+/\\x04" "/;
|
||||
|
||||
21
mkpasswd.c
21
mkpasswd.c
@ -86,7 +86,13 @@ static const struct crypt_method methods[] = {
|
||||
N_("standard 56 bit DES-based crypt(3)") },
|
||||
{ "md5", "$1$", 8, 8, 0, "MD5" },
|
||||
#if defined OpenBSD || defined FreeBSD || (defined __SVR4 && defined __sun)
|
||||
# if (defined OpenBSD && OpenBSD >= 201405)
|
||||
/* http://marc.info/?l=openbsd-misc&m=139320023202696 */
|
||||
{ "bf", "$2b$", 22, 22, 1, "Blowfish" },
|
||||
{ "bfa", "$2a$", 22, 22, 1, "Blowfish (obsolete $2a$ version)" },
|
||||
# else
|
||||
{ "bf", "$2a$", 22, 22, 1, "Blowfish" },
|
||||
# endif
|
||||
#endif
|
||||
#if defined HAVE_LINUX_CRYPT_GENSALT
|
||||
{ "bf", "$2a$", 22, 22, 1, "Blowfish, system-specific on 8-bit chars" },
|
||||
@ -377,20 +383,27 @@ void* get_random_bytes(const unsigned int count)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef RANDOM_DEVICE
|
||||
#if defined RANDOM_DEVICE || defined HAVE_ARC4RANDOM_BUF
|
||||
|
||||
void generate_salt(char *const buf, const unsigned int len)
|
||||
{
|
||||
unsigned int i;
|
||||
unsigned char *entropy;
|
||||
|
||||
#if defined HAVE_ARC4RANDOM_BUF
|
||||
void *entropy = NOFAIL(malloc(len));
|
||||
arc4random_buf(entropy, len);
|
||||
#else
|
||||
entropy = get_random_bytes(len);
|
||||
#endif
|
||||
|
||||
unsigned char *entropy = get_random_bytes(len * sizeof(unsigned char));
|
||||
for (i = 0; i < len; i++)
|
||||
buf[i] = valid_salts[entropy[i] % (sizeof valid_salts - 1)];
|
||||
buf[i] = '\0';
|
||||
free(entropy);
|
||||
}
|
||||
|
||||
#else /* RANDOM_DEVICE */
|
||||
#else /* RANDOM_DEVICE || HAVE_ARC4RANDOM_BUF */
|
||||
|
||||
void generate_salt(char *const buf, const unsigned int len)
|
||||
{
|
||||
@ -418,7 +431,7 @@ void generate_salt(char *const buf, const unsigned int len)
|
||||
buf[i] = '\0';
|
||||
}
|
||||
|
||||
#endif /* RANDOM_DEVICE */
|
||||
#endif /* RANDOM_DEVICE || HAVE_ARC4RANDOM_BUF */
|
||||
|
||||
void display_help(int error)
|
||||
{
|
||||
|
||||
@ -4,12 +4,19 @@
|
||||
# Any exceptions can be handled in tld_serv_list as usual, since it will
|
||||
# be checked first.
|
||||
|
||||
abogado
|
||||
academy
|
||||
accountants
|
||||
active
|
||||
actor
|
||||
adult
|
||||
agency
|
||||
airforce
|
||||
allfinanz
|
||||
alsace
|
||||
amsterdam
|
||||
android
|
||||
aquarelle
|
||||
archi
|
||||
army
|
||||
associates
|
||||
@ -18,6 +25,7 @@ auction
|
||||
audio
|
||||
autos
|
||||
axa
|
||||
band
|
||||
bar
|
||||
bargains
|
||||
bayern
|
||||
@ -29,18 +37,21 @@ bike
|
||||
bio
|
||||
black
|
||||
blackfriday
|
||||
bloomberg
|
||||
blue
|
||||
bmw
|
||||
bnpparibas
|
||||
boo
|
||||
boutique
|
||||
brussels
|
||||
budapest
|
||||
build
|
||||
builders
|
||||
business
|
||||
buzz
|
||||
bzh
|
||||
cab
|
||||
cal
|
||||
camera
|
||||
camp
|
||||
cancerresearch
|
||||
@ -51,13 +62,17 @@ cards
|
||||
care
|
||||
career
|
||||
careers
|
||||
cartier
|
||||
casa
|
||||
cash
|
||||
catering
|
||||
center
|
||||
ceo
|
||||
cern
|
||||
channel
|
||||
cheap
|
||||
christmas
|
||||
chrome
|
||||
church
|
||||
citic
|
||||
city
|
||||
@ -67,11 +82,11 @@ click
|
||||
clinic
|
||||
clothing
|
||||
club
|
||||
coach
|
||||
codes
|
||||
coffee
|
||||
college
|
||||
cologne
|
||||
com
|
||||
community
|
||||
company
|
||||
computer
|
||||
@ -84,6 +99,8 @@ cool
|
||||
country
|
||||
credit
|
||||
creditcard
|
||||
cricket
|
||||
crs
|
||||
cruises
|
||||
cuisinella
|
||||
cymru
|
||||
@ -93,10 +110,12 @@ dating
|
||||
day
|
||||
deals
|
||||
degree
|
||||
delivery
|
||||
democrat
|
||||
dental
|
||||
dentist
|
||||
desi
|
||||
dev
|
||||
diamonds
|
||||
diet
|
||||
digital
|
||||
@ -104,33 +123,46 @@ direct
|
||||
directory
|
||||
discount
|
||||
dnp
|
||||
docs
|
||||
domains
|
||||
doosan
|
||||
durban
|
||||
dvag
|
||||
eat
|
||||
education
|
||||
email
|
||||
emerck
|
||||
energy
|
||||
engineer
|
||||
engineering
|
||||
enterprises
|
||||
equipment
|
||||
esq
|
||||
estate
|
||||
eurovision
|
||||
eus
|
||||
events
|
||||
everbank
|
||||
exchange
|
||||
expert
|
||||
exposed
|
||||
fail
|
||||
farm
|
||||
fashion
|
||||
feedback
|
||||
finance
|
||||
financial
|
||||
firmdale
|
||||
fish
|
||||
fishing
|
||||
fitness
|
||||
flights
|
||||
florist
|
||||
flowers
|
||||
flsmidth
|
||||
fly
|
||||
foo
|
||||
forsale
|
||||
foundation
|
||||
frl
|
||||
frogans
|
||||
@ -139,17 +171,21 @@ furniture
|
||||
futbol
|
||||
gal
|
||||
gallery
|
||||
garden
|
||||
gbiz
|
||||
gent
|
||||
ggee
|
||||
gift
|
||||
gifts
|
||||
gives
|
||||
glass
|
||||
gle
|
||||
global
|
||||
globo
|
||||
gmail
|
||||
gmo
|
||||
gmx
|
||||
google
|
||||
gop
|
||||
graphics
|
||||
gratis
|
||||
@ -173,16 +209,18 @@ host
|
||||
hosting
|
||||
house
|
||||
how
|
||||
ibm
|
||||
immo
|
||||
immobilien
|
||||
industries
|
||||
info
|
||||
ing
|
||||
ink
|
||||
institute
|
||||
insure
|
||||
international
|
||||
investments
|
||||
irish
|
||||
iwc
|
||||
jetzt
|
||||
joburg
|
||||
juegos
|
||||
@ -195,9 +233,13 @@ krd
|
||||
kred
|
||||
lacaixa
|
||||
land
|
||||
latrobe
|
||||
lawyer
|
||||
lds
|
||||
lease
|
||||
legal
|
||||
lgbt
|
||||
lidl
|
||||
life
|
||||
lighting
|
||||
limited
|
||||
@ -209,6 +251,7 @@ lotto
|
||||
ltda
|
||||
luxe
|
||||
luxury
|
||||
madrid
|
||||
maison
|
||||
management
|
||||
mango
|
||||
@ -218,22 +261,25 @@ media
|
||||
meet
|
||||
melbourne
|
||||
meme
|
||||
memorial
|
||||
menu
|
||||
miami
|
||||
mini
|
||||
moda
|
||||
moe
|
||||
monash
|
||||
money
|
||||
mormon
|
||||
mortgage
|
||||
moscow
|
||||
motorcycles
|
||||
mov
|
||||
nagoya
|
||||
navy
|
||||
net
|
||||
network
|
||||
neustar
|
||||
new
|
||||
nexus
|
||||
ngo
|
||||
nhk
|
||||
ninja
|
||||
@ -244,13 +290,14 @@ okinawa
|
||||
ong
|
||||
onl
|
||||
ooo
|
||||
org
|
||||
organic
|
||||
osaka
|
||||
otsuka
|
||||
ovh
|
||||
paris
|
||||
partners
|
||||
parts
|
||||
party
|
||||
pharmacy
|
||||
photo
|
||||
photography
|
||||
@ -262,10 +309,14 @@ pink
|
||||
pizza
|
||||
place
|
||||
plumbing
|
||||
pohl
|
||||
poker
|
||||
porn
|
||||
praxi
|
||||
press
|
||||
prod
|
||||
productions
|
||||
prof
|
||||
properties
|
||||
property
|
||||
pub
|
||||
@ -277,6 +328,7 @@ red
|
||||
rehab
|
||||
reise
|
||||
reisen
|
||||
reit
|
||||
ren
|
||||
rentals
|
||||
repair
|
||||
@ -287,23 +339,30 @@ restaurant
|
||||
reviews
|
||||
rich
|
||||
rio
|
||||
rip
|
||||
rocks
|
||||
rodeo
|
||||
rsvp
|
||||
ruhr
|
||||
ryukyu
|
||||
saarland
|
||||
sale
|
||||
samsung
|
||||
sarl
|
||||
sca
|
||||
scb
|
||||
schmidt
|
||||
schule
|
||||
schwarz
|
||||
science
|
||||
scot
|
||||
services
|
||||
sew
|
||||
sexy
|
||||
shiksha
|
||||
shoes
|
||||
singles
|
||||
sky
|
||||
social
|
||||
software
|
||||
sohu
|
||||
@ -318,13 +377,16 @@ support
|
||||
surf
|
||||
surgery
|
||||
suzuki
|
||||
sydney
|
||||
systems
|
||||
taipei
|
||||
tatar
|
||||
tattoo
|
||||
tax
|
||||
technology
|
||||
tienda
|
||||
tips
|
||||
tires
|
||||
tirol
|
||||
today
|
||||
tokyo
|
||||
@ -334,6 +396,8 @@ town
|
||||
toys
|
||||
trade
|
||||
training
|
||||
trust
|
||||
tui
|
||||
university
|
||||
uno
|
||||
uol
|
||||
@ -343,6 +407,7 @@ ventures
|
||||
versicherung
|
||||
vet
|
||||
viajes
|
||||
video
|
||||
villas
|
||||
vision
|
||||
vlaanderen
|
||||
@ -357,17 +422,21 @@ watch
|
||||
webcam
|
||||
website
|
||||
wed
|
||||
wedding
|
||||
whoswho
|
||||
wien
|
||||
wiki
|
||||
williamhill
|
||||
wme
|
||||
work
|
||||
works
|
||||
world
|
||||
wtc
|
||||
wtf
|
||||
xn--1qqw23a
|
||||
xn--3bst00m
|
||||
xn--3ds443g
|
||||
xn--45q11c
|
||||
xn--4gbrim
|
||||
xn--55qw42g
|
||||
xn--55qx5d
|
||||
@ -379,10 +448,13 @@ xn--80aswg
|
||||
xn--c1avg
|
||||
xn--cg4bki
|
||||
xn--czr694b
|
||||
xn--czrs0t
|
||||
xn--czru2d
|
||||
xn--d1acj3b
|
||||
xn--fiq228c5hs
|
||||
xn--fiq64b
|
||||
xn--flw351e
|
||||
xn--hxt814e
|
||||
xn--i1b6b1a6a2e
|
||||
xn--io0a7i
|
||||
xn--kput3i
|
||||
@ -390,16 +462,23 @@ xn--mgbab2bd
|
||||
xn--ngbc5azd
|
||||
xn--nqv7f
|
||||
xn--nqv7fs00ema
|
||||
xn--p1acf
|
||||
xn--q9jyb4c
|
||||
xn--qcka1pmc
|
||||
xn--rhqv96g
|
||||
xn--ses554g
|
||||
xn--unup4y
|
||||
xn--vermgensberater-ctb
|
||||
xn--vermgensberatung-pwb
|
||||
xn--vhquv
|
||||
xn--xhq521b
|
||||
xn--zfr164b
|
||||
xyz
|
||||
yachts
|
||||
yandex
|
||||
yoga
|
||||
yokohama
|
||||
youtube
|
||||
zip
|
||||
zone
|
||||
zuerich
|
||||
|
||||
22
nic_handles_list
Normal file
22
nic_handles_list
Normal file
@ -0,0 +1,22 @@
|
||||
-arin whois.arin.net
|
||||
-ripe whois.ripe.net
|
||||
-mnt whois.ripe.net
|
||||
-lacnic whois.lacnic.net
|
||||
-afrinic whois.afrinic.net
|
||||
-ap whois.apnic.net
|
||||
-cznic whois.nic.cz
|
||||
-dk whois.dk-hostmaster.dk
|
||||
-il whois.isoc.org.il
|
||||
-is whois.isnic.is
|
||||
-kg whois.domain.kg
|
||||
-coop whois.nic.coop
|
||||
-frnic whois.nic.fr
|
||||
-lrms whois.afilias.info
|
||||
-metu whois.nic.tr
|
||||
-nicat whois.nic.at
|
||||
-nicci whois.nic.ci
|
||||
-irnic whois.nic.ir
|
||||
-norid whois.norid.no
|
||||
-tel whois.nic.tel
|
||||
-adnic whois.nic.org.uy
|
||||
-sixxs whois.sixxs.net
|
||||
2
po/eu.po
2
po/eu.po
@ -11,7 +11,7 @@ msgstr ""
|
||||
"PO-Revision-Date: 2002-08-24 16:22+0200\n"
|
||||
"Last-Translator: Aitor Ibaez <aitiba@gmail.com>\n"
|
||||
"Language-Team: Euskara <Librezale@librezale.org>\n"
|
||||
"Language: \n"
|
||||
"Language: eu\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@ -11,7 +11,7 @@ msgstr ""
|
||||
"PO-Revision-Date: 2006-04-26 21:03-0300\n"
|
||||
"Last-Translator: Anderson Goulart <globalx@gmail.com>\n"
|
||||
"Language-Team: Portuguese/Brazil\n"
|
||||
"Language: \n"
|
||||
"Language: pt_BR\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=iso-8859-1\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@ -32,6 +32,7 @@ whois.isnic.is iso-8859-1
|
||||
whois.nic.it utf-8
|
||||
whois.jprs.jp iso-2022-jp
|
||||
whois.nic.ad.jp iso-2022-jp
|
||||
whois.domain.kg cp1251
|
||||
whois.nic.or.kr utf-8
|
||||
whois.kr utf-8
|
||||
# XXX I had to guess: the server is unable to fully transcode U+49b in the
|
||||
@ -40,6 +41,7 @@ whois.nic.kz rk1048
|
||||
whois.nic.li utf-8
|
||||
whois.domreg.lt utf-8
|
||||
whois.dns.lu iso-8859-1
|
||||
whois.marnet.mk utf-8
|
||||
whois.nic.mu utf-8
|
||||
whois.norid.no iso-8859-1
|
||||
whois.iis.nu utf-8
|
||||
|
||||
@ -91,7 +91,7 @@
|
||||
.bi whois1.nic.bi
|
||||
.bj whois.nic.bj
|
||||
#.bl
|
||||
.bm WEB http://207.228.133.14/cgi-bin/lansaweb?procfun+BMWHO+BMWHO2+WHO
|
||||
.bm WEB http://www.bermudanic.bm/cgi-bin/lansaweb?procfun+BMWHO+BMWHO2+WHO
|
||||
.bn whois.bn # www.brunet.bn
|
||||
.bo whois.nic.bo
|
||||
#.bq
|
||||
@ -107,7 +107,7 @@
|
||||
.cc VERISIGN ccwhois.verisign-grs.com
|
||||
.cd whois.nic.cd
|
||||
.cf whois.dot.cf
|
||||
.cg WEB http://www.nic.cg/cgi-bin/whois.pl
|
||||
.cg NONE
|
||||
.ch whois.nic.ch
|
||||
.ci whois.nic.ci
|
||||
.ck NONE
|
||||
@ -156,12 +156,12 @@
|
||||
.gm WEB http://www.nic.gm/htmlpages/whois.htm
|
||||
.gn NONE # http://www.psg.com/dns/gn/
|
||||
.gp WEB https://www.dom-enic.com/whois.html
|
||||
.gq NONE # NO NIC http://www.getesa.gq/
|
||||
.gr WEB https://grweb.ics.forth.gr/Whois?lang=en
|
||||
.gq whois.dominio.gq
|
||||
.gr WEB https://grweb.ics.forth.gr/public/whois.jsp?lang=en
|
||||
.gs whois.nic.gs
|
||||
.gt WEB http://www.gt/who_is.html
|
||||
.gt WEB http://www.gt/
|
||||
.gu WEB http://gadao.gov.gu/domainsearch.htm
|
||||
.gw NONE # currently no registry
|
||||
.gw WEB http://nic.gw/en/whois/
|
||||
.gy whois.registry.gy
|
||||
.hk whois.hkirc.hk
|
||||
.hm whois.registry.hm
|
||||
@ -185,7 +185,7 @@
|
||||
.jp whois.jprs.jp
|
||||
.ke whois.kenic.or.ke
|
||||
.kg whois.domain.kg
|
||||
.kh NONE # http://www.mptc.gov.kh/DomainNameRegistrationForm.aspx http://www.nic.net.kh/
|
||||
.kh NONE # http://www.trc.gov.kh/index.php/en/newsCategory/view?id=42&detail_id=68
|
||||
.ki whois.nic.mu
|
||||
.km NONE # www.domaine.km
|
||||
.kn WEB http://www.nic.kn/
|
||||
@ -207,7 +207,7 @@
|
||||
.ly whois.nic.ly
|
||||
.ma whois.iam.net.ma # www.nic.ma
|
||||
.mc NONE # www.nic.mc
|
||||
.md WEB http://www.dns.md/wh1.php # whois.nic.md is restricted
|
||||
.md whois.nic.md
|
||||
.me whois.nic.me # afilias
|
||||
#.mf
|
||||
.mg whois.nic.mg
|
||||
@ -227,7 +227,7 @@
|
||||
.mw WEB http://www.registrar.mw/
|
||||
.mx whois.mx
|
||||
.my whois.mynic.my
|
||||
.mz NONE # NIC? www.uem.mz
|
||||
.mz whois.nic.mz
|
||||
.na whois.na-nic.com.na
|
||||
.nc whois.nc
|
||||
.ne NONE # NIC? http://www.intnet.ne
|
||||
@ -236,7 +236,7 @@
|
||||
.ni WEB http://www.nic.ni/
|
||||
.nl whois.domain-registry.nl
|
||||
.no whois.norid.no
|
||||
.np WEB http://register.mos.com.np/userSearchInc.asp
|
||||
.np WEB http://register.mos.com.np/np-whois-lookup
|
||||
.nr WEB http://www.cenpac.net.nr/dns/whois.html
|
||||
.nu whois.iis.nu
|
||||
.nz whois.srs.net.nz
|
||||
@ -255,7 +255,7 @@
|
||||
.ps whois.pnina.ps
|
||||
.pt whois.dns.pt
|
||||
.pw whois.nic.pw
|
||||
.py WEB http://www.nic.py/consultas.html
|
||||
.py WEB http://www.nic.py/consulta-datos.php
|
||||
.qa whois.registry.qa
|
||||
.re whois.nic.re
|
||||
.ro whois.rotld.ro
|
||||
@ -285,10 +285,10 @@
|
||||
.sx whois.sx
|
||||
.sy whois.tld.sy
|
||||
.sz NONE # http://www.sispa.org.sz/
|
||||
.tc whois.meridiantld.net
|
||||
.tc whois.nic.tc
|
||||
.td WEB http://www.nic.td/
|
||||
.tf whois.nic.tf
|
||||
.tg WEB http://www.nic.tg/
|
||||
.tg whois.nic.tg
|
||||
.th whois.thnic.co.th
|
||||
.tj WEB http://www.nic.tj/whois.html
|
||||
.tk whois.dot.tk
|
||||
@ -329,7 +329,7 @@
|
||||
.vc AFILIAS
|
||||
.ve whois.nic.ve
|
||||
.vg whois.adamsnames.tc
|
||||
.vi WEB http://www.nic.vi/whoisform.htm
|
||||
.vi WEB https://secure.nic.vi/whois-lookup/
|
||||
.vn WEB http://www.vnnic.vn/en/domain
|
||||
.vu vunic.vu
|
||||
.wf whois.nic.wf
|
||||
@ -340,10 +340,10 @@
|
||||
.alt.za whois.alt.za
|
||||
.co.za whois.registry.net.za
|
||||
.gov.za whois.gov.za
|
||||
.net.za whois.net.za
|
||||
.org.za WEB http://www.org.za/ # rwhois.org.za:4321 is restricted
|
||||
.web.za whois.web.za
|
||||
.za NONE # http://www.zadna.org.za/annexure-d.html
|
||||
.net.za net-whois.registry.net.za
|
||||
.org.za org-whois.registry.net.za
|
||||
.web.za web-whois.registry.net.za
|
||||
.za NONE # http://www.zadna.org.za/content/page/domain-information
|
||||
.zm whois.nic.zm
|
||||
.zw NONE # http://www.zispa.co.zw/
|
||||
|
||||
@ -354,6 +354,7 @@
|
||||
.xn--80ao21a whois.nic.kz # Kazakhstan
|
||||
.xn--90a3ac whois.rnids.rs # Serbia
|
||||
.xn--clchc0ea0b2g2a9gcd whois.sgnic.sg # Singapore, Tamil
|
||||
.xn--d1alf whois.marnet.mk # Macedonia
|
||||
.xn--fiqs8s cwhois.cnnic.cn # China, Simplified Chinese
|
||||
.xn--fiqz9s cwhois.cnnic.cn # China, Traditional Chinese
|
||||
.xn--fpcrj9c3d whois.inregistry.net # India, Telugu AW
|
||||
@ -374,6 +375,7 @@
|
||||
.xn--mgbc0a9azcg NONE # Morocco
|
||||
.xn--mgberp4a5d4ar whois.nic.net.sa # Saudi Arabia
|
||||
.xn--mgbx4cd0ab whois.mynic.my # Malaysia AW
|
||||
.xn--node whois.itdc.ge # Georgia
|
||||
.xn--o3cw4h whois.thnic.co.th # Thailand
|
||||
.xn--ogbpf8fl whois.tld.sy # Syria
|
||||
.xn--p1ai whois.tcinet.ru # Russian Federation
|
||||
@ -385,38 +387,3 @@
|
||||
.xn--xkc2dl3a5ee0h whois.inregistry.net # India, Tamil AW
|
||||
.xn--yfro4i67o whois.sgnic.sg # Singapore, Chinese
|
||||
.xn--ygbi2ammx whois.pnina.ps # Palestinian Territory
|
||||
|
||||
-dom whois.networksolutions.com
|
||||
-org whois.networksolutions.com
|
||||
-hst whois.networksolutions.com
|
||||
-arin whois.arin.net
|
||||
-ripe whois.ripe.net
|
||||
-mnt whois.ripe.net
|
||||
-lacnic whois.lacnic.net
|
||||
-afrinic whois.afrinic.net
|
||||
-ap whois.apnic.net
|
||||
-cn whois.cnnic.cn
|
||||
-cz whois.nic.cz
|
||||
-dk whois.dk-hostmaster.dk
|
||||
-il whois.isoc.org.il
|
||||
-is whois.isnic.is
|
||||
-kg whois.domain.kg
|
||||
-ti whois.telstra.net
|
||||
-tw whois.twnic.net.tw
|
||||
-coop whois.nic.coop
|
||||
-frnic whois.nic.fr
|
||||
-gandi whois.gandi.net
|
||||
-kenic whois.kenic.or.ke
|
||||
-lrms whois.afilias.info
|
||||
-metu whois.nic.tr
|
||||
-nicat whois.nic.at
|
||||
-nicci whois.nic.ci
|
||||
-nicir whois.nic.ir
|
||||
-norid whois.norid.no
|
||||
-rotld whois.rotld.ro
|
||||
-sgnic whois.sgnic.sg
|
||||
-tel whois.nic.tel
|
||||
-uanic whois.ua
|
||||
-cunic whois.cunic.ua
|
||||
-uynic whois.nic.org.uy
|
||||
-sixxs whois.sixxs.net
|
||||
|
||||
102
whois.c
102
whois.c
@ -442,7 +442,7 @@ const char *match_config_file(const char *s)
|
||||
}
|
||||
regfree(&re);
|
||||
#else
|
||||
if (domcmp(s, pattern)) {
|
||||
if (endstrcaseeq(s, pattern)) {
|
||||
fclose(fp);
|
||||
return strdup(server);
|
||||
}
|
||||
@ -496,6 +496,15 @@ char *guess_server(const char *s)
|
||||
|
||||
/* no dot and no hyphen means it's a NSI NIC handle or ASN (?) */
|
||||
if (!strpbrk(s, ".-")) {
|
||||
/* if it is a TLD or a new gTLD then ask IANA */
|
||||
for (i = 0; tld_serv[i]; i += 2)
|
||||
if (strcaseeq(s, tld_serv[i]))
|
||||
return strdup("whois.iana.org");
|
||||
|
||||
for (i = 0; new_gtlds[i]; i++)
|
||||
if (strcaseeq(s, new_gtlds[i]))
|
||||
return strdup("whois.iana.org");
|
||||
|
||||
if (strncaseeq(s, "as", 2) && /* it's an AS */
|
||||
(isasciidigit(s[2]) || s[2] == ' '))
|
||||
return strdup(whereas(atol(s + 2)));
|
||||
@ -524,7 +533,7 @@ char *guess_server(const char *s)
|
||||
|
||||
/* check the TLDs list */
|
||||
for (i = 0; tld_serv[i]; i += 2)
|
||||
if (domcmp(s, tld_serv[i]))
|
||||
if (in_domain(s, tld_serv[i]))
|
||||
return strdup(tld_serv[i + 1]);
|
||||
|
||||
/* use the default server name for "new" gTLDs */
|
||||
@ -541,6 +550,12 @@ char *guess_server(const char *s)
|
||||
for (i = 0; nic_handles[i]; i += 2)
|
||||
if (strncaseeq(s, nic_handles[i], strlen(nic_handles[i])))
|
||||
return strdup(nic_handles[i + 1]);
|
||||
|
||||
/* search for strings at the end of the word */
|
||||
for (i = 0; nic_handles_post[i]; i += 2)
|
||||
if (endstrcaseeq(s, nic_handles_post[i]))
|
||||
return strdup(nic_handles_post[i + 1]);
|
||||
|
||||
/* it's probably a network name */
|
||||
return strdup("");
|
||||
}
|
||||
@ -633,9 +648,9 @@ char *queryformat(const char *server, const char *flags, const char *query)
|
||||
/* add useful default flags if there are no flags or multiple arguments */
|
||||
if (isripe) { }
|
||||
else if (strchr(query, ' ') || *flags) { }
|
||||
else if (streq(server, "whois.denic.de") && domcmp(query, ".de"))
|
||||
else if (streq(server, "whois.denic.de") && in_domain(query, "de"))
|
||||
strcat(buf, "-T dn" DENIC_PARAM_ACE DENIC_PARAM_CHARSET " ");
|
||||
else if (streq(server, "whois.dk-hostmaster.dk") && domcmp(query, ".dk"))
|
||||
else if (streq(server, "whois.dk-hostmaster.dk") && in_domain(query, "dk"))
|
||||
strcat(buf, "--show-handles ");
|
||||
|
||||
/* mangle and add the query string */
|
||||
@ -1035,18 +1050,50 @@ int japanese_locale(void) {
|
||||
}
|
||||
|
||||
/* check if dom ends with tld */
|
||||
int domcmp(const char *dom, const char *tld)
|
||||
int endstrcaseeq(const char *dom, const char *tld)
|
||||
{
|
||||
const char *p, *q;
|
||||
size_t dom_len, tld_len;
|
||||
const char *p = NULL;
|
||||
|
||||
for (p = dom; *p; p++); p--; /* move to the last char */
|
||||
for (q = tld; *q; q++); q--;
|
||||
while (p >= dom && q >= tld && tolower(*p) == *q) { /* compare backwards */
|
||||
if (q == tld) /* start of the second word? */
|
||||
return 1;
|
||||
p--; q--;
|
||||
}
|
||||
return 0;
|
||||
if ((dom_len = strlen(dom)) == 0)
|
||||
return 0;
|
||||
|
||||
if ((tld_len = strlen(tld)) == 0)
|
||||
return 0;
|
||||
|
||||
/* dom cannot be shorter than what we are looking for */
|
||||
if (tld_len > dom_len)
|
||||
return 0;
|
||||
|
||||
p = dom + dom_len - tld_len;
|
||||
|
||||
return strcaseeq(p, tld);
|
||||
}
|
||||
|
||||
/* check if dom is a subdomain of tld */
|
||||
int in_domain(const char *dom, const char *tld)
|
||||
{
|
||||
size_t dom_len, tld_len;
|
||||
const char *p = NULL;
|
||||
|
||||
if ((dom_len = strlen(dom)) == 0)
|
||||
return 0;
|
||||
|
||||
if ((tld_len = strlen(tld)) == 0)
|
||||
return 0;
|
||||
|
||||
/* dom cannot be shorter than what we are looking for */
|
||||
/* -1 to ignore dom containing just a dot and tld */
|
||||
if (tld_len >= dom_len - 1)
|
||||
return 0;
|
||||
|
||||
p = dom + dom_len - tld_len;
|
||||
|
||||
/* fail if the character before tld is not a dot */
|
||||
if (*(p - 1) != '.')
|
||||
return 0;
|
||||
|
||||
return strcaseeq(p, tld);
|
||||
}
|
||||
|
||||
const char *is_new_gtld(const char *s)
|
||||
@ -1054,8 +1101,8 @@ const char *is_new_gtld(const char *s)
|
||||
int i;
|
||||
|
||||
for (i = 0; new_gtlds[i]; i++)
|
||||
if (domcmp(s, new_gtlds[i]))
|
||||
return new_gtlds[i] + 1;
|
||||
if (in_domain(s, new_gtlds[i]))
|
||||
return new_gtlds[i];
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1063,7 +1110,7 @@ const char *is_new_gtld(const char *s)
|
||||
/*
|
||||
* Attempt to normalize a query by removing trailing dots and whitespace,
|
||||
* then convert the domain to punycode.
|
||||
* The function assumes that the domain is the last token of they query.
|
||||
* The function assumes that the domain is the last token of the query.
|
||||
* Returns a malloc'ed string which needs to be freed by the caller.
|
||||
*/
|
||||
char *normalize_domain(const char *dom)
|
||||
@ -1074,10 +1121,15 @@ char *normalize_domain(const char *dom)
|
||||
#endif
|
||||
|
||||
ret = strdup(dom);
|
||||
/* eat trailing dots and blanks */
|
||||
p = ret + strlen(ret);
|
||||
for (; *p == '.' || *p == ' ' || *p == '\t' || p == ret; p--)
|
||||
/* start from the last character */
|
||||
p = ret + strlen(ret) - 1;
|
||||
/* and then eat trailing dots and blanks */
|
||||
while (p > ret) {
|
||||
if (!(*p == '.' || *p == ' ' || *p == '\t'))
|
||||
break;
|
||||
*p = '\0';
|
||||
p--;
|
||||
}
|
||||
|
||||
#ifdef HAVE_LIBIDN
|
||||
/* find the start of the last word if there are spaces in the query */
|
||||
@ -1235,19 +1287,23 @@ char *convert_inaddr(const char *s)
|
||||
if (errno || a < 0 || a > 255 || *endptr != '.')
|
||||
return strdup("0.0.0.0");
|
||||
|
||||
if (domcmp(endptr + 1, ".in-addr.arpa")) {
|
||||
if (in_domain(endptr + 1, "in-addr.arpa")) {
|
||||
b = strtol(endptr + 1, &endptr, 10); /* 1.2. */
|
||||
if (errno || b < 0 || b > 255 || *endptr != '.')
|
||||
return strdup("0.0.0.0");
|
||||
|
||||
if (domcmp(endptr + 1, ".in-addr.arpa")) {
|
||||
if (in_domain(endptr + 1, "in-addr.arpa")) {
|
||||
c = strtol(endptr + 1, &endptr, 10); /* 1.2.3. */
|
||||
if (errno || c < 0 || c > 255 || *endptr != '.')
|
||||
return strdup("0.0.0.0");
|
||||
|
||||
if (domcmp(endptr + 1, ".in-addr.arpa"))
|
||||
if (in_domain(endptr + 1, "in-addr.arpa"))
|
||||
return strdup("0.0.0.0");
|
||||
} else {
|
||||
c = b; b = a; a = 0;
|
||||
}
|
||||
} else {
|
||||
c = a; a = 0;
|
||||
}
|
||||
|
||||
new = malloc(sizeof("255.255.255.255"));
|
||||
|
||||
3
whois.h
3
whois.h
@ -28,7 +28,8 @@ int japanese_locale(void);
|
||||
unsigned long myinet_aton(const char *);
|
||||
unsigned long asn32_to_long(const char *);
|
||||
int isasciidigit(const char);
|
||||
int domcmp(const char *, const char *);
|
||||
int endstrcaseeq(const char *, const char *);
|
||||
int in_domain(const char *, const char *);
|
||||
const char *is_new_gtld(const char *);
|
||||
int domfind(const char *, const char *[]);
|
||||
char *normalize_domain(const char *);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user