pax_global_header 0000666 0000000 0000000 00000000064 12555317001 0014511 g ustar 00root root 0000000 0000000 52 comment=4e51874c5b85dcdadd40276ca85f9ed915b1be0f
quri-20150804-git/ 0000775 0000000 0000000 00000000000 12555317001 0013517 5 ustar 00root root 0000000 0000000 quri-20150804-git/.gitattributes 0000664 0000000 0000000 00000000037 12555317001 0016412 0 ustar 00root root 0000000 0000000 data/* linguist-vendored=false
quri-20150804-git/.gitignore 0000664 0000000 0000000 00000000074 12555317001 0015510 0 ustar 00root root 0000000 0000000 *.fasl
*.dx32fsl
*.dx64fsl
*.lx32fsl
*.lx64fsl
*.x86f
*~
.#* quri-20150804-git/.travis.yml 0000664 0000000 0000000 00000001060 12555317001 0015625 0 ustar 00root root 0000000 0000000 language: common-lisp
env:
matrix:
- LISP=sbcl COVERALLS=true
- LISP=ccl
- LISP=clisp
- LISP=allegro
- LISP=abcl
- LISP=ecl
install:
# Install cl-travis
- curl https://raw.githubusercontent.com/luismbo/cl-travis/master/install.sh | bash
script:
- if [ "$COVERALLS" ]; then
cl -l prove -l cl-coveralls
-e '(or (coveralls:with-coveralls (:exclude "t")
(prove:run :quri-test))
(uiop:quit -1))';
else
cl -l prove -e '(or (prove:run :quri-test) (uiop:quit -1))';
fi quri-20150804-git/README.markdown 0000664 0000000 0000000 00000017400 12555317001 0016222 0 ustar 00root root 0000000 0000000 # QURI
[](https://travis-ci.org/fukamachi/quri)
[](https://coveralls.io/r/fukamachi/quri)

Photo by m-louis, licensed under the CC BY-SA 2.0 license.
**QURI** (pronounced "Q-ree") is yet another URI library for Common Lisp. It is intended to be a replacement of [PURI](http://puri.b9.com).
## Differences from PURI
- Fast. (See [Benchmark](#benchmark))
- Doesn't encode/decode URL implicitly.
- Supports userinfo. (ex. `git` in `git@github.com`)
- Supports IPv6 hostname. (ex. `ldap://[2001:db8::7]/`)
- Allows byte vectors as input.
- Takes optional `:start` and `:end` keyword arguments.
- Low-level parser functions.
- URL encoding/decoding utilities.
- `url-decode`, `url-decode-params`, `url-encode`, `url-encode-params`
## Usage
```common-lisp
(use-package :quri)
(defvar *uri* (uri "http://www.ics.uci.edu/pub/ietf/uri/#Related"))
*uri*
;=> #
(uri-scheme *uri*)
;=> "http"
(uri-host *uri*)
;=> "www.ics.uci.edu"
(uri-domain *uri*)
;=> "uci.edu"
(uri-path *uri*)
;=> "/pub/ietf/uri/"
(uri-fragment *uri*)
;=> "Related"
```
## Functions
### \[Function] uri
Parse a string or a byte vector and return a `uri` object.
### \[Function] make-uri
Create a `uri` object.
### \[Function] copy-uri
Return a copy of the given `uri` object.
### \[Function] merge-uris
Merge a reference URI into the base URI as described in RFC 2396 Section 5.2. The returned URI may or may not be a new instance. Neither REFERENCE nor BASE is mutated.
### \[Structure] uri
Structure class as a representation of URIs. The following methods are available for all classes extends this class.
#### Methods
- `uri-scheme`
- `uri-userinfo`
- `uri-host`
- `uri-domain`
- `uri-tld`
- `uri-port`
- `uri-path`
- `uri-authority`
- `render-uri`
### \[Structure] urn (extends uri)
Structure class as a representation of URNs. All methods of `uri` are also available for this class.
#### Methods
- `urn-nid`
- `urn-nss`
### \[Structure] uri-http (extends uri)
Structure class for HTTP/HTTPS URIs.
#### Methods
- `uri-query-params`
```common-lisp
(defvar *uri* (quri:uri "http://quickdocs.org/search?q=web"))
(uri-query-params *uri*)
;=> (("q" . "web"))
(setf (uri-query-params *uri*) '(("q" . "system programming")))
*uri*
;=> #
```
### \[Structure] uri-ftp (extends uri)
Structure class for FTP URIs.
#### Methods
- `uri-ftp-typecode`
### \[Structure] uri-ldap (extends uri)
Structure class for LDAP/LDAPS URIs.
#### Methods
- `uri-ldap-dn`
- `uri-ldap-attributes`
- `uri-ldap-scope`
- `uri-ldap-filter`
- `uri-ldap-extensions`
### \[Function] url-decode
Decode a Percent-Encoded string or byte vector.
```common-lisp
(url-decode "%2Ffoo%E3%81%82")
;=> "/fooあ"
```
### \[Function] url-decode-params
Decode a [form-urlencoded](http://tools.ietf.org/html/rfc1866#section-8.2.1) string or byte vector and return an association list.
### \[Function] url-encode
Encode a string or a byte vector into a Percent-Encoded string.
```common-lisp
(url-encode "/fooあ")
;=> "%2Ffoo%E3%81%82"
```
### \[Function] url-encode-params
Encode an association list into a [form-urlencoded](http://tools.ietf.org/html/rfc1866#section-8.2.1) string.
## Low-level functions
### \[Function] parse-uri
Parse a URI string or a URI byte vector and return 7 URI components -- scheme, userinfo, host name, port, path, query and fragment.
```common-lisp
(parse-uri "http://www.ics.uci.edu/pub/ietf/uri/#Related")
;=> "http"
; NIL
; "www.ics.uci.edu"
; NIL
; "/pub/ietf/uri/"
; NIL
; "Related"
```
## Installation
```
$ git clone https://github.com/fukamachi/quri
```
```common-lisp
(ql:quickload :quri)
```
## Benchmark
### Parsing URI
- Parsing a URI string 100,000 times.
| QURI | PURI |
|--------|--------|
| 0.064s | 0.423s |
QURI is **6.6 times faster** than PURI for URI parsing.
#### QURI
```common-lisp
(time
(dotimes (i 100000)
(quri:uri "http://www.ics.uci.edu/pub/ietf/uri/#Related")))
```
```
Evaluation took:
0.064 seconds of real time
0.063984 seconds of total run time (0.063745 user, 0.000239 system)
100.00% CPU
191,340,531 processor cycles
28,807,728 bytes consed
```
#### PURI
```common-lisp
(time
(dotimes (i 100000)
(puri:uri "http://www.ics.uci.edu/pub/ietf/uri/#Related")))
```
```
Evaluation took:
0.423 seconds of real time
0.425327 seconds of total run time (0.422234 user, 0.003093 system)
[ Run times consist of 0.004 seconds GC time, and 0.422 seconds non-GC time. ]
100.47% CPU
1,266,663,894 processor cycles
64,001,408 bytes consed
```
### URL decoding
- Decoding a URL-encoded string 100,000 times.
| QURI | Hunchentoot | do-urlencode |
|--------|-------------|--------------|
| 0.029s | 0.089s | 0.634s |
QURI is **3 times faster** than Hunchentoot, and **21.8 times faster** than do-urlencode.
#### QURI
```common-lisp
(time
(dotimes (i 100000)
(quri:url-decode "foo%E3%81%82")))
```
```
Evaluation took:
0.029 seconds of real time
0.028683 seconds of total run time (0.027934 user, 0.000749 system)
100.00% CPU
85,421,676 processor cycles
7,993,456 bytes consed
```
#### Hunchentoot
```common-lisp
(time
(dotimes (i 100000)
(hunchentoot:url-decode "foo%E3%81%82")))
```
```
Evaluation took:
0.089 seconds of real time
0.088946 seconds of total run time (0.087632 user, 0.001314 system)
100.00% CPU
265,341,714 processor cycles
17,611,968 bytes consed
```
#### do-urlencode
```common-lisp
(time
(dotimes (i 100000)
(do-urlencode:urldecode "foo%E3%81%82")))
```
```
Evaluation took:
0.634 seconds of real time
0.637236 seconds of total run time (0.632224 user, 0.005012 system)
[ Run times consist of 0.023 seconds GC time, and 0.615 seconds non-GC time. ]
100.47% CPU
1,897,304,959 processor cycles
153,606,064 bytes consed
```
### URL encoding
- URL-encoding a string 100,000 times.
| QURI | Hunchentoot | do-urlencode |
|--------|-------------|--------------|
| 0.074s | 0.282s | 0.317s |
QURI is **3.8 times faster** than Hunchentoot, and **4.2 times faster** than do-urlencode.
#### QURI
```common-lisp
(time
(dotimes (i 100000)
(quri:url-encode "fooあ")))
```
```
Evaluation took:
0.074 seconds of real time
0.074284 seconds of total run time (0.072908 user, 0.001376 system)
100.00% CPU
221,267,517 processor cycles
31,993,520 bytes consed
```
#### Hunchentoot
```common-lisp
(time
(dotimes (i 100000)
(hunchentoot:url-encode "fooあ")))
```
```
Evaluation took:
0.282 seconds of real time
0.284922 seconds of total run time (0.280063 user, 0.004859 system)
[ Run times consist of 0.034 seconds GC time, and 0.251 seconds non-GC time. ]
101.06% CPU
845,204,850 processor cycles
214,382,672 bytes consed
```
#### do-urlencode
```common-lisp
(time
(dotimes (i 100000)
(do-urlencode:urlencode "fooあ")))
```
```
Evaluation took:
0.317 seconds of real time
0.319419 seconds of total run time (0.314339 user, 0.005080 system)
[ Run times consist of 0.026 seconds GC time, and 0.294 seconds non-GC time. ]
100.63% CPU
946,704,912 processor cycles
219,186,768 bytes consed
```
## Author
* Eitaro Fukamachi (e.arrows@gmail.com)
## Copyright
Copyright (c) 2014 Eitaro Fukamachi (e.arrows@gmail.com)
## License
Licensed under the BSD 3-Clause License.
quri-20150804-git/data/ 0000775 0000000 0000000 00000000000 12555317001 0014430 5 ustar 00root root 0000000 0000000 quri-20150804-git/data/effective_tld_names.dat 0000664 0000000 0000000 00000450551 12555317001 0021122 0 ustar 00root root 0000000 0000000 // This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
// ===BEGIN ICANN DOMAINS===
// ac : http://en.wikipedia.org/wiki/.ac
ac
com.ac
edu.ac
gov.ac
net.ac
mil.ac
org.ac
// ad : http://en.wikipedia.org/wiki/.ad
ad
nom.ad
// ae : http://en.wikipedia.org/wiki/.ae
// see also: "Domain Name Eligibility Policy" at http://www.aeda.ae/eng/aepolicy.php
ae
co.ae
net.ae
org.ae
sch.ae
ac.ae
gov.ae
mil.ae
// aero : see http://www.information.aero/index.php?id=66
aero
accident-investigation.aero
accident-prevention.aero
aerobatic.aero
aeroclub.aero
aerodrome.aero
agents.aero
aircraft.aero
airline.aero
airport.aero
air-surveillance.aero
airtraffic.aero
air-traffic-control.aero
ambulance.aero
amusement.aero
association.aero
author.aero
ballooning.aero
broker.aero
caa.aero
cargo.aero
catering.aero
certification.aero
championship.aero
charter.aero
civilaviation.aero
club.aero
conference.aero
consultant.aero
consulting.aero
control.aero
council.aero
crew.aero
design.aero
dgca.aero
educator.aero
emergency.aero
engine.aero
engineer.aero
entertainment.aero
equipment.aero
exchange.aero
express.aero
federation.aero
flight.aero
freight.aero
fuel.aero
gliding.aero
government.aero
groundhandling.aero
group.aero
hanggliding.aero
homebuilt.aero
insurance.aero
journal.aero
journalist.aero
leasing.aero
logistics.aero
magazine.aero
maintenance.aero
marketplace.aero
media.aero
microlight.aero
modelling.aero
navigation.aero
parachuting.aero
paragliding.aero
passenger-association.aero
pilot.aero
press.aero
production.aero
recreation.aero
repbody.aero
res.aero
research.aero
rotorcraft.aero
safety.aero
scientist.aero
services.aero
show.aero
skydiving.aero
software.aero
student.aero
taxi.aero
trader.aero
trading.aero
trainer.aero
union.aero
workinggroup.aero
works.aero
// af : http://www.nic.af/help.jsp
af
gov.af
com.af
org.af
net.af
edu.af
// ag : http://www.nic.ag/prices.htm
ag
com.ag
org.ag
net.ag
co.ag
nom.ag
// ai : http://nic.com.ai/
ai
off.ai
com.ai
net.ai
org.ai
// al : http://www.ert.gov.al/ert_alb/faq_det.html?Id=31
al
com.al
edu.al
gov.al
mil.al
net.al
org.al
// am : http://en.wikipedia.org/wiki/.am
am
// an : http://www.una.an/an_domreg/default.asp
an
com.an
net.an
org.an
edu.an
// ao : http://en.wikipedia.org/wiki/.ao
// http://www.dns.ao/REGISTR.DOC
ao
ed.ao
gv.ao
og.ao
co.ao
pb.ao
it.ao
// aq : http://en.wikipedia.org/wiki/.aq
aq
// ar : https://nic.ar/normativa-vigente.xhtml
ar
com.ar
edu.ar
gob.ar
gov.ar
int.ar
mil.ar
net.ar
org.ar
tur.ar
// arpa : http://en.wikipedia.org/wiki/.arpa
// Confirmed by registry 2008-06-18
arpa
e164.arpa
in-addr.arpa
ip6.arpa
iris.arpa
uri.arpa
urn.arpa
// as : http://en.wikipedia.org/wiki/.as
as
gov.as
// asia : http://en.wikipedia.org/wiki/.asia
asia
// at : http://en.wikipedia.org/wiki/.at
// Confirmed by registry 2008-06-17
at
ac.at
co.at
gv.at
or.at
// au : http://en.wikipedia.org/wiki/.au
// http://www.auda.org.au/
au
// 2LDs
com.au
net.au
org.au
edu.au
gov.au
asn.au
id.au
// Historic 2LDs (closed to new registration, but sites still exist)
info.au
conf.au
oz.au
// CGDNs - http://www.cgdn.org.au/
act.au
nsw.au
nt.au
qld.au
sa.au
tas.au
vic.au
wa.au
// 3LDs
act.edu.au
nsw.edu.au
nt.edu.au
qld.edu.au
sa.edu.au
tas.edu.au
vic.edu.au
wa.edu.au
// act.gov.au Bug 984824 - Removed at request of Greg Tankard
// nsw.gov.au Bug 547985 - Removed at request of
// nt.gov.au Bug 940478 - Removed at request of Greg Connors
qld.gov.au
sa.gov.au
tas.gov.au
vic.gov.au
wa.gov.au
// aw : http://en.wikipedia.org/wiki/.aw
aw
com.aw
// ax : http://en.wikipedia.org/wiki/.ax
ax
// az : http://en.wikipedia.org/wiki/.az
az
com.az
net.az
int.az
gov.az
org.az
edu.az
info.az
pp.az
mil.az
name.az
pro.az
biz.az
// ba : http://en.wikipedia.org/wiki/.ba
ba
org.ba
net.ba
edu.ba
gov.ba
mil.ba
unsa.ba
unbi.ba
co.ba
com.ba
rs.ba
// bb : http://en.wikipedia.org/wiki/.bb
bb
biz.bb
co.bb
com.bb
edu.bb
gov.bb
info.bb
net.bb
org.bb
store.bb
tv.bb
// bd : http://en.wikipedia.org/wiki/.bd
*.bd
// be : http://en.wikipedia.org/wiki/.be
// Confirmed by registry 2008-06-08
be
ac.be
// bf : http://en.wikipedia.org/wiki/.bf
bf
gov.bf
// bg : http://en.wikipedia.org/wiki/.bg
// https://www.register.bg/user/static/rules/en/index.html
bg
a.bg
b.bg
c.bg
d.bg
e.bg
f.bg
g.bg
h.bg
i.bg
j.bg
k.bg
l.bg
m.bg
n.bg
o.bg
p.bg
q.bg
r.bg
s.bg
t.bg
u.bg
v.bg
w.bg
x.bg
y.bg
z.bg
0.bg
1.bg
2.bg
3.bg
4.bg
5.bg
6.bg
7.bg
8.bg
9.bg
// bh : http://en.wikipedia.org/wiki/.bh
bh
com.bh
edu.bh
net.bh
org.bh
gov.bh
// bi : http://en.wikipedia.org/wiki/.bi
// http://whois.nic.bi/
bi
co.bi
com.bi
edu.bi
or.bi
org.bi
// biz : http://en.wikipedia.org/wiki/.biz
biz
// bj : http://en.wikipedia.org/wiki/.bj
bj
asso.bj
barreau.bj
gouv.bj
// bm : http://www.bermudanic.bm/dnr-text.txt
bm
com.bm
edu.bm
gov.bm
net.bm
org.bm
// bn : http://en.wikipedia.org/wiki/.bn
*.bn
// bo : http://www.nic.bo/
bo
com.bo
edu.bo
gov.bo
gob.bo
int.bo
org.bo
net.bo
mil.bo
tv.bo
// br : http://registro.br/dominio/categoria.html
// Submitted by registry 2014-08-11
br
adm.br
adv.br
agr.br
am.br
arq.br
art.br
ato.br
b.br
bio.br
blog.br
bmd.br
cim.br
cng.br
cnt.br
com.br
coop.br
ecn.br
eco.br
edu.br
emp.br
eng.br
esp.br
etc.br
eti.br
far.br
flog.br
fm.br
fnd.br
fot.br
fst.br
g12.br
ggf.br
gov.br
imb.br
ind.br
inf.br
jor.br
jus.br
leg.br
lel.br
mat.br
med.br
mil.br
mp.br
mus.br
net.br
*.nom.br
not.br
ntr.br
odo.br
org.br
ppg.br
pro.br
psc.br
psi.br
qsl.br
radio.br
rec.br
slg.br
srv.br
taxi.br
teo.br
tmp.br
trd.br
tur.br
tv.br
vet.br
vlog.br
wiki.br
zlg.br
// bs : http://www.nic.bs/rules.html
bs
com.bs
net.bs
org.bs
edu.bs
gov.bs
// bt : http://en.wikipedia.org/wiki/.bt
bt
com.bt
edu.bt
gov.bt
net.bt
org.bt
// bv : No registrations at this time.
// Submitted by registry 2006-06-16
bv
// bw : http://en.wikipedia.org/wiki/.bw
// http://www.gobin.info/domainname/bw.doc
// list of other 2nd level tlds ?
bw
co.bw
org.bw
// by : http://en.wikipedia.org/wiki/.by
// http://tld.by/rules_2006_en.html
// list of other 2nd level tlds ?
by
gov.by
mil.by
// Official information does not indicate that com.by is a reserved
// second-level domain, but it's being used as one (see www.google.com.by and
// www.yahoo.com.by, for example), so we list it here for safety's sake.
com.by
// http://hoster.by/
of.by
// bz : http://en.wikipedia.org/wiki/.bz
// http://www.belizenic.bz/
bz
com.bz
net.bz
org.bz
edu.bz
gov.bz
// ca : http://en.wikipedia.org/wiki/.ca
ca
// ca geographical names
ab.ca
bc.ca
mb.ca
nb.ca
nf.ca
nl.ca
ns.ca
nt.ca
nu.ca
on.ca
pe.ca
qc.ca
sk.ca
yk.ca
// gc.ca: http://en.wikipedia.org/wiki/.gc.ca
// see also: http://registry.gc.ca/en/SubdomainFAQ
gc.ca
// cat : http://en.wikipedia.org/wiki/.cat
cat
// cc : http://en.wikipedia.org/wiki/.cc
cc
// cd : http://en.wikipedia.org/wiki/.cd
// see also: https://www.nic.cd/domain/insertDomain_2.jsp?act=1
cd
gov.cd
// cf : http://en.wikipedia.org/wiki/.cf
cf
// cg : http://en.wikipedia.org/wiki/.cg
cg
// ch : http://en.wikipedia.org/wiki/.ch
ch
// ci : http://en.wikipedia.org/wiki/.ci
// http://www.nic.ci/index.php?page=charte
ci
org.ci
or.ci
com.ci
co.ci
edu.ci
ed.ci
ac.ci
net.ci
go.ci
asso.ci
aéroport.ci
int.ci
presse.ci
md.ci
gouv.ci
// ck : http://en.wikipedia.org/wiki/.ck
*.ck
!www.ck
// cl : http://en.wikipedia.org/wiki/.cl
cl
gov.cl
gob.cl
co.cl
mil.cl
// cm : http://en.wikipedia.org/wiki/.cm plus bug 981927
cm
co.cm
com.cm
gov.cm
net.cm
// cn : http://en.wikipedia.org/wiki/.cn
// Submitted by registry 2008-06-11
cn
ac.cn
com.cn
edu.cn
gov.cn
net.cn
org.cn
mil.cn
公司.cn
网络.cn
網絡.cn
// cn geographic names
ah.cn
bj.cn
cq.cn
fj.cn
gd.cn
gs.cn
gz.cn
gx.cn
ha.cn
hb.cn
he.cn
hi.cn
hl.cn
hn.cn
jl.cn
js.cn
jx.cn
ln.cn
nm.cn
nx.cn
qh.cn
sc.cn
sd.cn
sh.cn
sn.cn
sx.cn
tj.cn
xj.cn
xz.cn
yn.cn
zj.cn
hk.cn
mo.cn
tw.cn
// co : http://en.wikipedia.org/wiki/.co
// Submitted by registry 2008-06-11
co
arts.co
com.co
edu.co
firm.co
gov.co
info.co
int.co
mil.co
net.co
nom.co
org.co
rec.co
web.co
// com : http://en.wikipedia.org/wiki/.com
com
// coop : http://en.wikipedia.org/wiki/.coop
coop
// cr : http://www.nic.cr/niccr_publico/showRegistroDominiosScreen.do
cr
ac.cr
co.cr
ed.cr
fi.cr
go.cr
or.cr
sa.cr
// cu : http://en.wikipedia.org/wiki/.cu
cu
com.cu
edu.cu
org.cu
net.cu
gov.cu
inf.cu
// cv : http://en.wikipedia.org/wiki/.cv
cv
// cw : http://www.una.cw/cw_registry/
// Confirmed by registry 2013-03-26
cw
com.cw
edu.cw
net.cw
org.cw
// cx : http://en.wikipedia.org/wiki/.cx
// list of other 2nd level tlds ?
cx
gov.cx
// cy : http://en.wikipedia.org/wiki/.cy
*.cy
// cz : http://en.wikipedia.org/wiki/.cz
cz
// de : http://en.wikipedia.org/wiki/.de
// Confirmed by registry (with technical
// reservations) 2008-07-01
de
// dj : http://en.wikipedia.org/wiki/.dj
dj
// dk : http://en.wikipedia.org/wiki/.dk
// Confirmed by registry 2008-06-17
dk
// dm : http://en.wikipedia.org/wiki/.dm
dm
com.dm
net.dm
org.dm
edu.dm
gov.dm
// do : http://en.wikipedia.org/wiki/.do
do
art.do
com.do
edu.do
gob.do
gov.do
mil.do
net.do
org.do
sld.do
web.do
// dz : http://en.wikipedia.org/wiki/.dz
dz
com.dz
org.dz
net.dz
gov.dz
edu.dz
asso.dz
pol.dz
art.dz
// ec : http://www.nic.ec/reg/paso1.asp
// Submitted by registry 2008-07-04
ec
com.ec
info.ec
net.ec
fin.ec
k12.ec
med.ec
pro.ec
org.ec
edu.ec
gov.ec
gob.ec
mil.ec
// edu : http://en.wikipedia.org/wiki/.edu
edu
// ee : http://www.eenet.ee/EENet/dom_reeglid.html#lisa_B
ee
edu.ee
gov.ee
riik.ee
lib.ee
med.ee
com.ee
pri.ee
aip.ee
org.ee
fie.ee
// eg : http://en.wikipedia.org/wiki/.eg
eg
com.eg
edu.eg
eun.eg
gov.eg
mil.eg
name.eg
net.eg
org.eg
sci.eg
// er : http://en.wikipedia.org/wiki/.er
*.er
// es : https://www.nic.es/site_ingles/ingles/dominios/index.html
es
com.es
nom.es
org.es
gob.es
edu.es
// et : http://en.wikipedia.org/wiki/.et
et
com.et
gov.et
org.et
edu.et
biz.et
name.et
info.et
// eu : http://en.wikipedia.org/wiki/.eu
eu
// fi : http://en.wikipedia.org/wiki/.fi
fi
// aland.fi : http://en.wikipedia.org/wiki/.ax
// This domain is being phased out in favor of .ax. As there are still many
// domains under aland.fi, we still keep it on the list until aland.fi is
// completely removed.
// TODO: Check for updates (expected to be phased out around Q1/2009)
aland.fi
// fj : http://en.wikipedia.org/wiki/.fj
*.fj
// fk : http://en.wikipedia.org/wiki/.fk
*.fk
// fm : http://en.wikipedia.org/wiki/.fm
fm
// fo : http://en.wikipedia.org/wiki/.fo
fo
// fr : http://www.afnic.fr/
// domaines descriptifs : http://www.afnic.fr/obtenir/chartes/nommage-fr/annexe-descriptifs
fr
com.fr
asso.fr
nom.fr
prd.fr
presse.fr
tm.fr
// domaines sectoriels : http://www.afnic.fr/obtenir/chartes/nommage-fr/annexe-sectoriels
aeroport.fr
assedic.fr
avocat.fr
avoues.fr
cci.fr
chambagri.fr
chirurgiens-dentistes.fr
experts-comptables.fr
geometre-expert.fr
gouv.fr
greta.fr
huissier-justice.fr
medecin.fr
notaires.fr
pharmacien.fr
port.fr
veterinaire.fr
// ga : http://en.wikipedia.org/wiki/.ga
ga
// gb : This registry is effectively dormant
// Submitted by registry 2008-06-12
gb
// gd : http://en.wikipedia.org/wiki/.gd
gd
// ge : http://www.nic.net.ge/policy_en.pdf
ge
com.ge
edu.ge
gov.ge
org.ge
mil.ge
net.ge
pvt.ge
// gf : http://en.wikipedia.org/wiki/.gf
gf
// gg : http://www.channelisles.net/register-domains/
// Confirmed by registry 2013-11-28
gg
co.gg
net.gg
org.gg
// gh : http://en.wikipedia.org/wiki/.gh
// see also: http://www.nic.gh/reg_now.php
// Although domains directly at second level are not possible at the moment,
// they have been possible for some time and may come back.
gh
com.gh
edu.gh
gov.gh
org.gh
mil.gh
// gi : http://www.nic.gi/rules.html
gi
com.gi
ltd.gi
gov.gi
mod.gi
edu.gi
org.gi
// gl : http://en.wikipedia.org/wiki/.gl
// http://nic.gl
gl
// gm : http://www.nic.gm/htmlpages%5Cgm-policy.htm
gm
// gn : http://psg.com/dns/gn/gn.txt
// Submitted by registry 2008-06-17
gn
ac.gn
com.gn
edu.gn
gov.gn
org.gn
net.gn
// gov : http://en.wikipedia.org/wiki/.gov
gov
// gp : http://www.nic.gp/index.php?lang=en
gp
com.gp
net.gp
mobi.gp
edu.gp
org.gp
asso.gp
// gq : http://en.wikipedia.org/wiki/.gq
gq
// gr : https://grweb.ics.forth.gr/english/1617-B-2005.html
// Submitted by registry 2008-06-09
gr
com.gr
edu.gr
net.gr
org.gr
gov.gr
// gs : http://en.wikipedia.org/wiki/.gs
gs
// gt : http://www.gt/politicas_de_registro.html
gt
com.gt
edu.gt
gob.gt
ind.gt
mil.gt
net.gt
org.gt
// gu : http://gadao.gov.gu/registration.txt
*.gu
// gw : http://en.wikipedia.org/wiki/.gw
gw
// gy : http://en.wikipedia.org/wiki/.gy
// http://registry.gy/
gy
co.gy
com.gy
net.gy
// hk : https://www.hkdnr.hk
// Submitted by registry 2008-06-11
hk
com.hk
edu.hk
gov.hk
idv.hk
net.hk
org.hk
公司.hk
教育.hk
敎育.hk
政府.hk
個人.hk
个人.hk
箇人.hk
網络.hk
网络.hk
组織.hk
網絡.hk
网絡.hk
组织.hk
組織.hk
組织.hk
// hm : http://en.wikipedia.org/wiki/.hm
hm
// hn : http://www.nic.hn/politicas/ps02,,05.html
hn
com.hn
edu.hn
org.hn
net.hn
mil.hn
gob.hn
// hr : http://www.dns.hr/documents/pdf/HRTLD-regulations.pdf
hr
iz.hr
from.hr
name.hr
com.hr
// ht : http://www.nic.ht/info/charte.cfm
ht
com.ht
shop.ht
firm.ht
info.ht
adult.ht
net.ht
pro.ht
org.ht
med.ht
art.ht
coop.ht
pol.ht
asso.ht
edu.ht
rel.ht
gouv.ht
perso.ht
// hu : http://www.domain.hu/domain/English/sld.html
// Confirmed by registry 2008-06-12
hu
co.hu
info.hu
org.hu
priv.hu
sport.hu
tm.hu
2000.hu
agrar.hu
bolt.hu
casino.hu
city.hu
erotica.hu
erotika.hu
film.hu
forum.hu
games.hu
hotel.hu
ingatlan.hu
jogasz.hu
konyvelo.hu
lakas.hu
media.hu
news.hu
reklam.hu
sex.hu
shop.hu
suli.hu
szex.hu
tozsde.hu
utazas.hu
video.hu
// id : https://register.pandi.or.id/
id
ac.id
biz.id
co.id
desa.id
go.id
mil.id
my.id
net.id
or.id
sch.id
web.id
// ie : http://en.wikipedia.org/wiki/.ie
ie
gov.ie
// il : http://en.wikipedia.org/wiki/.il
*.il
// im : https://www.nic.im/
// Submitted by registry 2013-11-15
im
ac.im
co.im
com.im
ltd.co.im
net.im
org.im
plc.co.im
tt.im
tv.im
// in : http://en.wikipedia.org/wiki/.in
// see also: https://registry.in/Policies
// Please note, that nic.in is not an offical eTLD, but used by most
// government institutions.
in
co.in
firm.in
net.in
org.in
gen.in
ind.in
nic.in
ac.in
edu.in
res.in
gov.in
mil.in
// info : http://en.wikipedia.org/wiki/.info
info
// int : http://en.wikipedia.org/wiki/.int
// Confirmed by registry 2008-06-18
int
eu.int
// io : http://www.nic.io/rules.html
// list of other 2nd level tlds ?
io
com.io
// iq : http://www.cmc.iq/english/iq/iqregister1.htm
iq
gov.iq
edu.iq
mil.iq
com.iq
org.iq
net.iq
// ir : http://www.nic.ir/Terms_and_Conditions_ir,_Appendix_1_Domain_Rules
// Also see http://www.nic.ir/Internationalized_Domain_Names
// Two .ir entries added at request of , 2010-04-16
ir
ac.ir
co.ir
gov.ir
id.ir
net.ir
org.ir
sch.ir
// xn--mgba3a4f16a.ir (.ir, Persian YEH)
ایران.ir
// xn--mgba3a4fra.ir (.ir, Arabic YEH)
ايران.ir
// is : http://www.isnic.is/domain/rules.php
// Confirmed by registry 2008-12-06
is
net.is
com.is
edu.is
gov.is
org.is
int.is
// it : http://en.wikipedia.org/wiki/.it
it
gov.it
edu.it
// Reserved geo-names:
// http://www.nic.it/documenti/regolamenti-e-linee-guida/regolamento-assegnazione-versione-6.0.pdf
// There is also a list of reserved geo-names corresponding to Italian municipalities
// http://www.nic.it/documenti/appendice-c.pdf, but it is not included here.
// Regions
abr.it
abruzzo.it
aosta-valley.it
aostavalley.it
bas.it
basilicata.it
cal.it
calabria.it
cam.it
campania.it
emilia-romagna.it
emiliaromagna.it
emr.it
friuli-v-giulia.it
friuli-ve-giulia.it
friuli-vegiulia.it
friuli-venezia-giulia.it
friuli-veneziagiulia.it
friuli-vgiulia.it
friuliv-giulia.it
friulive-giulia.it
friulivegiulia.it
friulivenezia-giulia.it
friuliveneziagiulia.it
friulivgiulia.it
fvg.it
laz.it
lazio.it
lig.it
liguria.it
lom.it
lombardia.it
lombardy.it
lucania.it
mar.it
marche.it
mol.it
molise.it
piedmont.it
piemonte.it
pmn.it
pug.it
puglia.it
sar.it
sardegna.it
sardinia.it
sic.it
sicilia.it
sicily.it
taa.it
tos.it
toscana.it
trentino-a-adige.it
trentino-aadige.it
trentino-alto-adige.it
trentino-altoadige.it
trentino-s-tirol.it
trentino-stirol.it
trentino-sud-tirol.it
trentino-sudtirol.it
trentino-sued-tirol.it
trentino-suedtirol.it
trentinoa-adige.it
trentinoaadige.it
trentinoalto-adige.it
trentinoaltoadige.it
trentinos-tirol.it
trentinostirol.it
trentinosud-tirol.it
trentinosudtirol.it
trentinosued-tirol.it
trentinosuedtirol.it
tuscany.it
umb.it
umbria.it
val-d-aosta.it
val-daosta.it
vald-aosta.it
valdaosta.it
valle-aosta.it
valle-d-aosta.it
valle-daosta.it
valleaosta.it
valled-aosta.it
valledaosta.it
vallee-aoste.it
valleeaoste.it
vao.it
vda.it
ven.it
veneto.it
// Provinces
ag.it
agrigento.it
al.it
alessandria.it
alto-adige.it
altoadige.it
an.it
ancona.it
andria-barletta-trani.it
andria-trani-barletta.it
andriabarlettatrani.it
andriatranibarletta.it
ao.it
aosta.it
aoste.it
ap.it
aq.it
aquila.it
ar.it
arezzo.it
ascoli-piceno.it
ascolipiceno.it
asti.it
at.it
av.it
avellino.it
ba.it
balsan.it
bari.it
barletta-trani-andria.it
barlettatraniandria.it
belluno.it
benevento.it
bergamo.it
bg.it
bi.it
biella.it
bl.it
bn.it
bo.it
bologna.it
bolzano.it
bozen.it
br.it
brescia.it
brindisi.it
bs.it
bt.it
bz.it
ca.it
cagliari.it
caltanissetta.it
campidano-medio.it
campidanomedio.it
campobasso.it
carbonia-iglesias.it
carboniaiglesias.it
carrara-massa.it
carraramassa.it
caserta.it
catania.it
catanzaro.it
cb.it
ce.it
cesena-forli.it
cesenaforli.it
ch.it
chieti.it
ci.it
cl.it
cn.it
co.it
como.it
cosenza.it
cr.it
cremona.it
crotone.it
cs.it
ct.it
cuneo.it
cz.it
dell-ogliastra.it
dellogliastra.it
en.it
enna.it
fc.it
fe.it
fermo.it
ferrara.it
fg.it
fi.it
firenze.it
florence.it
fm.it
foggia.it
forli-cesena.it
forlicesena.it
fr.it
frosinone.it
ge.it
genoa.it
genova.it
go.it
gorizia.it
gr.it
grosseto.it
iglesias-carbonia.it
iglesiascarbonia.it
im.it
imperia.it
is.it
isernia.it
kr.it
la-spezia.it
laquila.it
laspezia.it
latina.it
lc.it
le.it
lecce.it
lecco.it
li.it
livorno.it
lo.it
lodi.it
lt.it
lu.it
lucca.it
macerata.it
mantova.it
massa-carrara.it
massacarrara.it
matera.it
mb.it
mc.it
me.it
medio-campidano.it
mediocampidano.it
messina.it
mi.it
milan.it
milano.it
mn.it
mo.it
modena.it
monza-brianza.it
monza-e-della-brianza.it
monza.it
monzabrianza.it
monzaebrianza.it
monzaedellabrianza.it
ms.it
mt.it
na.it
naples.it
napoli.it
no.it
novara.it
nu.it
nuoro.it
og.it
ogliastra.it
olbia-tempio.it
olbiatempio.it
or.it
oristano.it
ot.it
pa.it
padova.it
padua.it
palermo.it
parma.it
pavia.it
pc.it
pd.it
pe.it
perugia.it
pesaro-urbino.it
pesarourbino.it
pescara.it
pg.it
pi.it
piacenza.it
pisa.it
pistoia.it
pn.it
po.it
pordenone.it
potenza.it
pr.it
prato.it
pt.it
pu.it
pv.it
pz.it
ra.it
ragusa.it
ravenna.it
rc.it
re.it
reggio-calabria.it
reggio-emilia.it
reggiocalabria.it
reggioemilia.it
rg.it
ri.it
rieti.it
rimini.it
rm.it
rn.it
ro.it
roma.it
rome.it
rovigo.it
sa.it
salerno.it
sassari.it
savona.it
si.it
siena.it
siracusa.it
so.it
sondrio.it
sp.it
sr.it
ss.it
suedtirol.it
sv.it
ta.it
taranto.it
te.it
tempio-olbia.it
tempioolbia.it
teramo.it
terni.it
tn.it
to.it
torino.it
tp.it
tr.it
trani-andria-barletta.it
trani-barletta-andria.it
traniandriabarletta.it
tranibarlettaandria.it
trapani.it
trentino.it
trento.it
treviso.it
trieste.it
ts.it
turin.it
tv.it
ud.it
udine.it
urbino-pesaro.it
urbinopesaro.it
va.it
varese.it
vb.it
vc.it
ve.it
venezia.it
venice.it
verbania.it
vercelli.it
verona.it
vi.it
vibo-valentia.it
vibovalentia.it
vicenza.it
viterbo.it
vr.it
vs.it
vt.it
vv.it
// je : http://www.channelisles.net/register-domains/
// Confirmed by registry 2013-11-28
je
co.je
net.je
org.je
// jm : http://www.com.jm/register.html
*.jm
// jo : http://www.dns.jo/Registration_policy.aspx
jo
com.jo
org.jo
net.jo
edu.jo
sch.jo
gov.jo
mil.jo
name.jo
// jobs : http://en.wikipedia.org/wiki/.jobs
jobs
// jp : http://en.wikipedia.org/wiki/.jp
// http://jprs.co.jp/en/jpdomain.html
// Submitted by registry 2014-10-30
jp
// jp organizational type names
ac.jp
ad.jp
co.jp
ed.jp
go.jp
gr.jp
lg.jp
ne.jp
or.jp
// jp prefecture type names
aichi.jp
akita.jp
aomori.jp
chiba.jp
ehime.jp
fukui.jp
fukuoka.jp
fukushima.jp
gifu.jp
gunma.jp
hiroshima.jp
hokkaido.jp
hyogo.jp
ibaraki.jp
ishikawa.jp
iwate.jp
kagawa.jp
kagoshima.jp
kanagawa.jp
kochi.jp
kumamoto.jp
kyoto.jp
mie.jp
miyagi.jp
miyazaki.jp
nagano.jp
nagasaki.jp
nara.jp
niigata.jp
oita.jp
okayama.jp
okinawa.jp
osaka.jp
saga.jp
saitama.jp
shiga.jp
shimane.jp
shizuoka.jp
tochigi.jp
tokushima.jp
tokyo.jp
tottori.jp
toyama.jp
wakayama.jp
yamagata.jp
yamaguchi.jp
yamanashi.jp
栃木.jp
愛知.jp
愛媛.jp
兵庫.jp
熊本.jp
茨城.jp
北海道.jp
千葉.jp
和歌山.jp
長崎.jp
長野.jp
新潟.jp
青森.jp
静岡.jp
東京.jp
石川.jp
埼玉.jp
三重.jp
京都.jp
佐賀.jp
大分.jp
大阪.jp
奈良.jp
宮城.jp
宮崎.jp
富山.jp
山口.jp
山形.jp
山梨.jp
岩手.jp
岐阜.jp
岡山.jp
島根.jp
広島.jp
徳島.jp
沖縄.jp
滋賀.jp
神奈川.jp
福井.jp
福岡.jp
福島.jp
秋田.jp
群馬.jp
香川.jp
高知.jp
鳥取.jp
鹿児島.jp
// jp geographic type names
// http://jprs.jp/doc/rule/saisoku-1.html
*.kawasaki.jp
*.kitakyushu.jp
*.kobe.jp
*.nagoya.jp
*.sapporo.jp
*.sendai.jp
*.yokohama.jp
!city.kawasaki.jp
!city.kitakyushu.jp
!city.kobe.jp
!city.nagoya.jp
!city.sapporo.jp
!city.sendai.jp
!city.yokohama.jp
// 4th level registration
aisai.aichi.jp
ama.aichi.jp
anjo.aichi.jp
asuke.aichi.jp
chiryu.aichi.jp
chita.aichi.jp
fuso.aichi.jp
gamagori.aichi.jp
handa.aichi.jp
hazu.aichi.jp
hekinan.aichi.jp
higashiura.aichi.jp
ichinomiya.aichi.jp
inazawa.aichi.jp
inuyama.aichi.jp
isshiki.aichi.jp
iwakura.aichi.jp
kanie.aichi.jp
kariya.aichi.jp
kasugai.aichi.jp
kira.aichi.jp
kiyosu.aichi.jp
komaki.aichi.jp
konan.aichi.jp
kota.aichi.jp
mihama.aichi.jp
miyoshi.aichi.jp
nishio.aichi.jp
nisshin.aichi.jp
obu.aichi.jp
oguchi.aichi.jp
oharu.aichi.jp
okazaki.aichi.jp
owariasahi.aichi.jp
seto.aichi.jp
shikatsu.aichi.jp
shinshiro.aichi.jp
shitara.aichi.jp
tahara.aichi.jp
takahama.aichi.jp
tobishima.aichi.jp
toei.aichi.jp
togo.aichi.jp
tokai.aichi.jp
tokoname.aichi.jp
toyoake.aichi.jp
toyohashi.aichi.jp
toyokawa.aichi.jp
toyone.aichi.jp
toyota.aichi.jp
tsushima.aichi.jp
yatomi.aichi.jp
akita.akita.jp
daisen.akita.jp
fujisato.akita.jp
gojome.akita.jp
hachirogata.akita.jp
happou.akita.jp
higashinaruse.akita.jp
honjo.akita.jp
honjyo.akita.jp
ikawa.akita.jp
kamikoani.akita.jp
kamioka.akita.jp
katagami.akita.jp
kazuno.akita.jp
kitaakita.akita.jp
kosaka.akita.jp
kyowa.akita.jp
misato.akita.jp
mitane.akita.jp
moriyoshi.akita.jp
nikaho.akita.jp
noshiro.akita.jp
odate.akita.jp
oga.akita.jp
ogata.akita.jp
semboku.akita.jp
yokote.akita.jp
yurihonjo.akita.jp
aomori.aomori.jp
gonohe.aomori.jp
hachinohe.aomori.jp
hashikami.aomori.jp
hiranai.aomori.jp
hirosaki.aomori.jp
itayanagi.aomori.jp
kuroishi.aomori.jp
misawa.aomori.jp
mutsu.aomori.jp
nakadomari.aomori.jp
noheji.aomori.jp
oirase.aomori.jp
owani.aomori.jp
rokunohe.aomori.jp
sannohe.aomori.jp
shichinohe.aomori.jp
shingo.aomori.jp
takko.aomori.jp
towada.aomori.jp
tsugaru.aomori.jp
tsuruta.aomori.jp
abiko.chiba.jp
asahi.chiba.jp
chonan.chiba.jp
chosei.chiba.jp
choshi.chiba.jp
chuo.chiba.jp
funabashi.chiba.jp
futtsu.chiba.jp
hanamigawa.chiba.jp
ichihara.chiba.jp
ichikawa.chiba.jp
ichinomiya.chiba.jp
inzai.chiba.jp
isumi.chiba.jp
kamagaya.chiba.jp
kamogawa.chiba.jp
kashiwa.chiba.jp
katori.chiba.jp
katsuura.chiba.jp
kimitsu.chiba.jp
kisarazu.chiba.jp
kozaki.chiba.jp
kujukuri.chiba.jp
kyonan.chiba.jp
matsudo.chiba.jp
midori.chiba.jp
mihama.chiba.jp
minamiboso.chiba.jp
mobara.chiba.jp
mutsuzawa.chiba.jp
nagara.chiba.jp
nagareyama.chiba.jp
narashino.chiba.jp
narita.chiba.jp
noda.chiba.jp
oamishirasato.chiba.jp
omigawa.chiba.jp
onjuku.chiba.jp
otaki.chiba.jp
sakae.chiba.jp
sakura.chiba.jp
shimofusa.chiba.jp
shirako.chiba.jp
shiroi.chiba.jp
shisui.chiba.jp
sodegaura.chiba.jp
sosa.chiba.jp
tako.chiba.jp
tateyama.chiba.jp
togane.chiba.jp
tohnosho.chiba.jp
tomisato.chiba.jp
urayasu.chiba.jp
yachimata.chiba.jp
yachiyo.chiba.jp
yokaichiba.chiba.jp
yokoshibahikari.chiba.jp
yotsukaido.chiba.jp
ainan.ehime.jp
honai.ehime.jp
ikata.ehime.jp
imabari.ehime.jp
iyo.ehime.jp
kamijima.ehime.jp
kihoku.ehime.jp
kumakogen.ehime.jp
masaki.ehime.jp
matsuno.ehime.jp
matsuyama.ehime.jp
namikata.ehime.jp
niihama.ehime.jp
ozu.ehime.jp
saijo.ehime.jp
seiyo.ehime.jp
shikokuchuo.ehime.jp
tobe.ehime.jp
toon.ehime.jp
uchiko.ehime.jp
uwajima.ehime.jp
yawatahama.ehime.jp
echizen.fukui.jp
eiheiji.fukui.jp
fukui.fukui.jp
ikeda.fukui.jp
katsuyama.fukui.jp
mihama.fukui.jp
minamiechizen.fukui.jp
obama.fukui.jp
ohi.fukui.jp
ono.fukui.jp
sabae.fukui.jp
sakai.fukui.jp
takahama.fukui.jp
tsuruga.fukui.jp
wakasa.fukui.jp
ashiya.fukuoka.jp
buzen.fukuoka.jp
chikugo.fukuoka.jp
chikuho.fukuoka.jp
chikujo.fukuoka.jp
chikushino.fukuoka.jp
chikuzen.fukuoka.jp
chuo.fukuoka.jp
dazaifu.fukuoka.jp
fukuchi.fukuoka.jp
hakata.fukuoka.jp
higashi.fukuoka.jp
hirokawa.fukuoka.jp
hisayama.fukuoka.jp
iizuka.fukuoka.jp
inatsuki.fukuoka.jp
kaho.fukuoka.jp
kasuga.fukuoka.jp
kasuya.fukuoka.jp
kawara.fukuoka.jp
keisen.fukuoka.jp
koga.fukuoka.jp
kurate.fukuoka.jp
kurogi.fukuoka.jp
kurume.fukuoka.jp
minami.fukuoka.jp
miyako.fukuoka.jp
miyama.fukuoka.jp
miyawaka.fukuoka.jp
mizumaki.fukuoka.jp
munakata.fukuoka.jp
nakagawa.fukuoka.jp
nakama.fukuoka.jp
nishi.fukuoka.jp
nogata.fukuoka.jp
ogori.fukuoka.jp
okagaki.fukuoka.jp
okawa.fukuoka.jp
oki.fukuoka.jp
omuta.fukuoka.jp
onga.fukuoka.jp
onojo.fukuoka.jp
oto.fukuoka.jp
saigawa.fukuoka.jp
sasaguri.fukuoka.jp
shingu.fukuoka.jp
shinyoshitomi.fukuoka.jp
shonai.fukuoka.jp
soeda.fukuoka.jp
sue.fukuoka.jp
tachiarai.fukuoka.jp
tagawa.fukuoka.jp
takata.fukuoka.jp
toho.fukuoka.jp
toyotsu.fukuoka.jp
tsuiki.fukuoka.jp
ukiha.fukuoka.jp
umi.fukuoka.jp
usui.fukuoka.jp
yamada.fukuoka.jp
yame.fukuoka.jp
yanagawa.fukuoka.jp
yukuhashi.fukuoka.jp
aizubange.fukushima.jp
aizumisato.fukushima.jp
aizuwakamatsu.fukushima.jp
asakawa.fukushima.jp
bandai.fukushima.jp
date.fukushima.jp
fukushima.fukushima.jp
furudono.fukushima.jp
futaba.fukushima.jp
hanawa.fukushima.jp
higashi.fukushima.jp
hirata.fukushima.jp
hirono.fukushima.jp
iitate.fukushima.jp
inawashiro.fukushima.jp
ishikawa.fukushima.jp
iwaki.fukushima.jp
izumizaki.fukushima.jp
kagamiishi.fukushima.jp
kaneyama.fukushima.jp
kawamata.fukushima.jp
kitakata.fukushima.jp
kitashiobara.fukushima.jp
koori.fukushima.jp
koriyama.fukushima.jp
kunimi.fukushima.jp
miharu.fukushima.jp
mishima.fukushima.jp
namie.fukushima.jp
nango.fukushima.jp
nishiaizu.fukushima.jp
nishigo.fukushima.jp
okuma.fukushima.jp
omotego.fukushima.jp
ono.fukushima.jp
otama.fukushima.jp
samegawa.fukushima.jp
shimogo.fukushima.jp
shirakawa.fukushima.jp
showa.fukushima.jp
soma.fukushima.jp
sukagawa.fukushima.jp
taishin.fukushima.jp
tamakawa.fukushima.jp
tanagura.fukushima.jp
tenei.fukushima.jp
yabuki.fukushima.jp
yamato.fukushima.jp
yamatsuri.fukushima.jp
yanaizu.fukushima.jp
yugawa.fukushima.jp
anpachi.gifu.jp
ena.gifu.jp
gifu.gifu.jp
ginan.gifu.jp
godo.gifu.jp
gujo.gifu.jp
hashima.gifu.jp
hichiso.gifu.jp
hida.gifu.jp
higashishirakawa.gifu.jp
ibigawa.gifu.jp
ikeda.gifu.jp
kakamigahara.gifu.jp
kani.gifu.jp
kasahara.gifu.jp
kasamatsu.gifu.jp
kawaue.gifu.jp
kitagata.gifu.jp
mino.gifu.jp
minokamo.gifu.jp
mitake.gifu.jp
mizunami.gifu.jp
motosu.gifu.jp
nakatsugawa.gifu.jp
ogaki.gifu.jp
sakahogi.gifu.jp
seki.gifu.jp
sekigahara.gifu.jp
shirakawa.gifu.jp
tajimi.gifu.jp
takayama.gifu.jp
tarui.gifu.jp
toki.gifu.jp
tomika.gifu.jp
wanouchi.gifu.jp
yamagata.gifu.jp
yaotsu.gifu.jp
yoro.gifu.jp
annaka.gunma.jp
chiyoda.gunma.jp
fujioka.gunma.jp
higashiagatsuma.gunma.jp
isesaki.gunma.jp
itakura.gunma.jp
kanna.gunma.jp
kanra.gunma.jp
katashina.gunma.jp
kawaba.gunma.jp
kiryu.gunma.jp
kusatsu.gunma.jp
maebashi.gunma.jp
meiwa.gunma.jp
midori.gunma.jp
minakami.gunma.jp
naganohara.gunma.jp
nakanojo.gunma.jp
nanmoku.gunma.jp
numata.gunma.jp
oizumi.gunma.jp
ora.gunma.jp
ota.gunma.jp
shibukawa.gunma.jp
shimonita.gunma.jp
shinto.gunma.jp
showa.gunma.jp
takasaki.gunma.jp
takayama.gunma.jp
tamamura.gunma.jp
tatebayashi.gunma.jp
tomioka.gunma.jp
tsukiyono.gunma.jp
tsumagoi.gunma.jp
ueno.gunma.jp
yoshioka.gunma.jp
asaminami.hiroshima.jp
daiwa.hiroshima.jp
etajima.hiroshima.jp
fuchu.hiroshima.jp
fukuyama.hiroshima.jp
hatsukaichi.hiroshima.jp
higashihiroshima.hiroshima.jp
hongo.hiroshima.jp
jinsekikogen.hiroshima.jp
kaita.hiroshima.jp
kui.hiroshima.jp
kumano.hiroshima.jp
kure.hiroshima.jp
mihara.hiroshima.jp
miyoshi.hiroshima.jp
naka.hiroshima.jp
onomichi.hiroshima.jp
osakikamijima.hiroshima.jp
otake.hiroshima.jp
saka.hiroshima.jp
sera.hiroshima.jp
seranishi.hiroshima.jp
shinichi.hiroshima.jp
shobara.hiroshima.jp
takehara.hiroshima.jp
abashiri.hokkaido.jp
abira.hokkaido.jp
aibetsu.hokkaido.jp
akabira.hokkaido.jp
akkeshi.hokkaido.jp
asahikawa.hokkaido.jp
ashibetsu.hokkaido.jp
ashoro.hokkaido.jp
assabu.hokkaido.jp
atsuma.hokkaido.jp
bibai.hokkaido.jp
biei.hokkaido.jp
bifuka.hokkaido.jp
bihoro.hokkaido.jp
biratori.hokkaido.jp
chippubetsu.hokkaido.jp
chitose.hokkaido.jp
date.hokkaido.jp
ebetsu.hokkaido.jp
embetsu.hokkaido.jp
eniwa.hokkaido.jp
erimo.hokkaido.jp
esan.hokkaido.jp
esashi.hokkaido.jp
fukagawa.hokkaido.jp
fukushima.hokkaido.jp
furano.hokkaido.jp
furubira.hokkaido.jp
haboro.hokkaido.jp
hakodate.hokkaido.jp
hamatonbetsu.hokkaido.jp
hidaka.hokkaido.jp
higashikagura.hokkaido.jp
higashikawa.hokkaido.jp
hiroo.hokkaido.jp
hokuryu.hokkaido.jp
hokuto.hokkaido.jp
honbetsu.hokkaido.jp
horokanai.hokkaido.jp
horonobe.hokkaido.jp
ikeda.hokkaido.jp
imakane.hokkaido.jp
ishikari.hokkaido.jp
iwamizawa.hokkaido.jp
iwanai.hokkaido.jp
kamifurano.hokkaido.jp
kamikawa.hokkaido.jp
kamishihoro.hokkaido.jp
kamisunagawa.hokkaido.jp
kamoenai.hokkaido.jp
kayabe.hokkaido.jp
kembuchi.hokkaido.jp
kikonai.hokkaido.jp
kimobetsu.hokkaido.jp
kitahiroshima.hokkaido.jp
kitami.hokkaido.jp
kiyosato.hokkaido.jp
koshimizu.hokkaido.jp
kunneppu.hokkaido.jp
kuriyama.hokkaido.jp
kuromatsunai.hokkaido.jp
kushiro.hokkaido.jp
kutchan.hokkaido.jp
kyowa.hokkaido.jp
mashike.hokkaido.jp
matsumae.hokkaido.jp
mikasa.hokkaido.jp
minamifurano.hokkaido.jp
mombetsu.hokkaido.jp
moseushi.hokkaido.jp
mukawa.hokkaido.jp
muroran.hokkaido.jp
naie.hokkaido.jp
nakagawa.hokkaido.jp
nakasatsunai.hokkaido.jp
nakatombetsu.hokkaido.jp
nanae.hokkaido.jp
nanporo.hokkaido.jp
nayoro.hokkaido.jp
nemuro.hokkaido.jp
niikappu.hokkaido.jp
niki.hokkaido.jp
nishiokoppe.hokkaido.jp
noboribetsu.hokkaido.jp
numata.hokkaido.jp
obihiro.hokkaido.jp
obira.hokkaido.jp
oketo.hokkaido.jp
okoppe.hokkaido.jp
otaru.hokkaido.jp
otobe.hokkaido.jp
otofuke.hokkaido.jp
otoineppu.hokkaido.jp
oumu.hokkaido.jp
ozora.hokkaido.jp
pippu.hokkaido.jp
rankoshi.hokkaido.jp
rebun.hokkaido.jp
rikubetsu.hokkaido.jp
rishiri.hokkaido.jp
rishirifuji.hokkaido.jp
saroma.hokkaido.jp
sarufutsu.hokkaido.jp
shakotan.hokkaido.jp
shari.hokkaido.jp
shibecha.hokkaido.jp
shibetsu.hokkaido.jp
shikabe.hokkaido.jp
shikaoi.hokkaido.jp
shimamaki.hokkaido.jp
shimizu.hokkaido.jp
shimokawa.hokkaido.jp
shinshinotsu.hokkaido.jp
shintoku.hokkaido.jp
shiranuka.hokkaido.jp
shiraoi.hokkaido.jp
shiriuchi.hokkaido.jp
sobetsu.hokkaido.jp
sunagawa.hokkaido.jp
taiki.hokkaido.jp
takasu.hokkaido.jp
takikawa.hokkaido.jp
takinoue.hokkaido.jp
teshikaga.hokkaido.jp
tobetsu.hokkaido.jp
tohma.hokkaido.jp
tomakomai.hokkaido.jp
tomari.hokkaido.jp
toya.hokkaido.jp
toyako.hokkaido.jp
toyotomi.hokkaido.jp
toyoura.hokkaido.jp
tsubetsu.hokkaido.jp
tsukigata.hokkaido.jp
urakawa.hokkaido.jp
urausu.hokkaido.jp
uryu.hokkaido.jp
utashinai.hokkaido.jp
wakkanai.hokkaido.jp
wassamu.hokkaido.jp
yakumo.hokkaido.jp
yoichi.hokkaido.jp
aioi.hyogo.jp
akashi.hyogo.jp
ako.hyogo.jp
amagasaki.hyogo.jp
aogaki.hyogo.jp
asago.hyogo.jp
ashiya.hyogo.jp
awaji.hyogo.jp
fukusaki.hyogo.jp
goshiki.hyogo.jp
harima.hyogo.jp
himeji.hyogo.jp
ichikawa.hyogo.jp
inagawa.hyogo.jp
itami.hyogo.jp
kakogawa.hyogo.jp
kamigori.hyogo.jp
kamikawa.hyogo.jp
kasai.hyogo.jp
kasuga.hyogo.jp
kawanishi.hyogo.jp
miki.hyogo.jp
minamiawaji.hyogo.jp
nishinomiya.hyogo.jp
nishiwaki.hyogo.jp
ono.hyogo.jp
sanda.hyogo.jp
sannan.hyogo.jp
sasayama.hyogo.jp
sayo.hyogo.jp
shingu.hyogo.jp
shinonsen.hyogo.jp
shiso.hyogo.jp
sumoto.hyogo.jp
taishi.hyogo.jp
taka.hyogo.jp
takarazuka.hyogo.jp
takasago.hyogo.jp
takino.hyogo.jp
tamba.hyogo.jp
tatsuno.hyogo.jp
toyooka.hyogo.jp
yabu.hyogo.jp
yashiro.hyogo.jp
yoka.hyogo.jp
yokawa.hyogo.jp
ami.ibaraki.jp
asahi.ibaraki.jp
bando.ibaraki.jp
chikusei.ibaraki.jp
daigo.ibaraki.jp
fujishiro.ibaraki.jp
hitachi.ibaraki.jp
hitachinaka.ibaraki.jp
hitachiomiya.ibaraki.jp
hitachiota.ibaraki.jp
ibaraki.ibaraki.jp
ina.ibaraki.jp
inashiki.ibaraki.jp
itako.ibaraki.jp
iwama.ibaraki.jp
joso.ibaraki.jp
kamisu.ibaraki.jp
kasama.ibaraki.jp
kashima.ibaraki.jp
kasumigaura.ibaraki.jp
koga.ibaraki.jp
miho.ibaraki.jp
mito.ibaraki.jp
moriya.ibaraki.jp
naka.ibaraki.jp
namegata.ibaraki.jp
oarai.ibaraki.jp
ogawa.ibaraki.jp
omitama.ibaraki.jp
ryugasaki.ibaraki.jp
sakai.ibaraki.jp
sakuragawa.ibaraki.jp
shimodate.ibaraki.jp
shimotsuma.ibaraki.jp
shirosato.ibaraki.jp
sowa.ibaraki.jp
suifu.ibaraki.jp
takahagi.ibaraki.jp
tamatsukuri.ibaraki.jp
tokai.ibaraki.jp
tomobe.ibaraki.jp
tone.ibaraki.jp
toride.ibaraki.jp
tsuchiura.ibaraki.jp
tsukuba.ibaraki.jp
uchihara.ibaraki.jp
ushiku.ibaraki.jp
yachiyo.ibaraki.jp
yamagata.ibaraki.jp
yawara.ibaraki.jp
yuki.ibaraki.jp
anamizu.ishikawa.jp
hakui.ishikawa.jp
hakusan.ishikawa.jp
kaga.ishikawa.jp
kahoku.ishikawa.jp
kanazawa.ishikawa.jp
kawakita.ishikawa.jp
komatsu.ishikawa.jp
nakanoto.ishikawa.jp
nanao.ishikawa.jp
nomi.ishikawa.jp
nonoichi.ishikawa.jp
noto.ishikawa.jp
shika.ishikawa.jp
suzu.ishikawa.jp
tsubata.ishikawa.jp
tsurugi.ishikawa.jp
uchinada.ishikawa.jp
wajima.ishikawa.jp
fudai.iwate.jp
fujisawa.iwate.jp
hanamaki.iwate.jp
hiraizumi.iwate.jp
hirono.iwate.jp
ichinohe.iwate.jp
ichinoseki.iwate.jp
iwaizumi.iwate.jp
iwate.iwate.jp
joboji.iwate.jp
kamaishi.iwate.jp
kanegasaki.iwate.jp
karumai.iwate.jp
kawai.iwate.jp
kitakami.iwate.jp
kuji.iwate.jp
kunohe.iwate.jp
kuzumaki.iwate.jp
miyako.iwate.jp
mizusawa.iwate.jp
morioka.iwate.jp
ninohe.iwate.jp
noda.iwate.jp
ofunato.iwate.jp
oshu.iwate.jp
otsuchi.iwate.jp
rikuzentakata.iwate.jp
shiwa.iwate.jp
shizukuishi.iwate.jp
sumita.iwate.jp
tanohata.iwate.jp
tono.iwate.jp
yahaba.iwate.jp
yamada.iwate.jp
ayagawa.kagawa.jp
higashikagawa.kagawa.jp
kanonji.kagawa.jp
kotohira.kagawa.jp
manno.kagawa.jp
marugame.kagawa.jp
mitoyo.kagawa.jp
naoshima.kagawa.jp
sanuki.kagawa.jp
tadotsu.kagawa.jp
takamatsu.kagawa.jp
tonosho.kagawa.jp
uchinomi.kagawa.jp
utazu.kagawa.jp
zentsuji.kagawa.jp
akune.kagoshima.jp
amami.kagoshima.jp
hioki.kagoshima.jp
isa.kagoshima.jp
isen.kagoshima.jp
izumi.kagoshima.jp
kagoshima.kagoshima.jp
kanoya.kagoshima.jp
kawanabe.kagoshima.jp
kinko.kagoshima.jp
kouyama.kagoshima.jp
makurazaki.kagoshima.jp
matsumoto.kagoshima.jp
minamitane.kagoshima.jp
nakatane.kagoshima.jp
nishinoomote.kagoshima.jp
satsumasendai.kagoshima.jp
soo.kagoshima.jp
tarumizu.kagoshima.jp
yusui.kagoshima.jp
aikawa.kanagawa.jp
atsugi.kanagawa.jp
ayase.kanagawa.jp
chigasaki.kanagawa.jp
ebina.kanagawa.jp
fujisawa.kanagawa.jp
hadano.kanagawa.jp
hakone.kanagawa.jp
hiratsuka.kanagawa.jp
isehara.kanagawa.jp
kaisei.kanagawa.jp
kamakura.kanagawa.jp
kiyokawa.kanagawa.jp
matsuda.kanagawa.jp
minamiashigara.kanagawa.jp
miura.kanagawa.jp
nakai.kanagawa.jp
ninomiya.kanagawa.jp
odawara.kanagawa.jp
oi.kanagawa.jp
oiso.kanagawa.jp
sagamihara.kanagawa.jp
samukawa.kanagawa.jp
tsukui.kanagawa.jp
yamakita.kanagawa.jp
yamato.kanagawa.jp
yokosuka.kanagawa.jp
yugawara.kanagawa.jp
zama.kanagawa.jp
zushi.kanagawa.jp
aki.kochi.jp
geisei.kochi.jp
hidaka.kochi.jp
higashitsuno.kochi.jp
ino.kochi.jp
kagami.kochi.jp
kami.kochi.jp
kitagawa.kochi.jp
kochi.kochi.jp
mihara.kochi.jp
motoyama.kochi.jp
muroto.kochi.jp
nahari.kochi.jp
nakamura.kochi.jp
nankoku.kochi.jp
nishitosa.kochi.jp
niyodogawa.kochi.jp
ochi.kochi.jp
okawa.kochi.jp
otoyo.kochi.jp
otsuki.kochi.jp
sakawa.kochi.jp
sukumo.kochi.jp
susaki.kochi.jp
tosa.kochi.jp
tosashimizu.kochi.jp
toyo.kochi.jp
tsuno.kochi.jp
umaji.kochi.jp
yasuda.kochi.jp
yusuhara.kochi.jp
amakusa.kumamoto.jp
arao.kumamoto.jp
aso.kumamoto.jp
choyo.kumamoto.jp
gyokuto.kumamoto.jp
hitoyoshi.kumamoto.jp
kamiamakusa.kumamoto.jp
kashima.kumamoto.jp
kikuchi.kumamoto.jp
kosa.kumamoto.jp
kumamoto.kumamoto.jp
mashiki.kumamoto.jp
mifune.kumamoto.jp
minamata.kumamoto.jp
minamioguni.kumamoto.jp
nagasu.kumamoto.jp
nishihara.kumamoto.jp
oguni.kumamoto.jp
ozu.kumamoto.jp
sumoto.kumamoto.jp
takamori.kumamoto.jp
uki.kumamoto.jp
uto.kumamoto.jp
yamaga.kumamoto.jp
yamato.kumamoto.jp
yatsushiro.kumamoto.jp
ayabe.kyoto.jp
fukuchiyama.kyoto.jp
higashiyama.kyoto.jp
ide.kyoto.jp
ine.kyoto.jp
joyo.kyoto.jp
kameoka.kyoto.jp
kamo.kyoto.jp
kita.kyoto.jp
kizu.kyoto.jp
kumiyama.kyoto.jp
kyotamba.kyoto.jp
kyotanabe.kyoto.jp
kyotango.kyoto.jp
maizuru.kyoto.jp
minami.kyoto.jp
minamiyamashiro.kyoto.jp
miyazu.kyoto.jp
muko.kyoto.jp
nagaokakyo.kyoto.jp
nakagyo.kyoto.jp
nantan.kyoto.jp
oyamazaki.kyoto.jp
sakyo.kyoto.jp
seika.kyoto.jp
tanabe.kyoto.jp
uji.kyoto.jp
ujitawara.kyoto.jp
wazuka.kyoto.jp
yamashina.kyoto.jp
yawata.kyoto.jp
asahi.mie.jp
inabe.mie.jp
ise.mie.jp
kameyama.mie.jp
kawagoe.mie.jp
kiho.mie.jp
kisosaki.mie.jp
kiwa.mie.jp
komono.mie.jp
kumano.mie.jp
kuwana.mie.jp
matsusaka.mie.jp
meiwa.mie.jp
mihama.mie.jp
minamiise.mie.jp
misugi.mie.jp
miyama.mie.jp
nabari.mie.jp
shima.mie.jp
suzuka.mie.jp
tado.mie.jp
taiki.mie.jp
taki.mie.jp
tamaki.mie.jp
toba.mie.jp
tsu.mie.jp
udono.mie.jp
ureshino.mie.jp
watarai.mie.jp
yokkaichi.mie.jp
furukawa.miyagi.jp
higashimatsushima.miyagi.jp
ishinomaki.miyagi.jp
iwanuma.miyagi.jp
kakuda.miyagi.jp
kami.miyagi.jp
kawasaki.miyagi.jp
kesennuma.miyagi.jp
marumori.miyagi.jp
matsushima.miyagi.jp
minamisanriku.miyagi.jp
misato.miyagi.jp
murata.miyagi.jp
natori.miyagi.jp
ogawara.miyagi.jp
ohira.miyagi.jp
onagawa.miyagi.jp
osaki.miyagi.jp
rifu.miyagi.jp
semine.miyagi.jp
shibata.miyagi.jp
shichikashuku.miyagi.jp
shikama.miyagi.jp
shiogama.miyagi.jp
shiroishi.miyagi.jp
tagajo.miyagi.jp
taiwa.miyagi.jp
tome.miyagi.jp
tomiya.miyagi.jp
wakuya.miyagi.jp
watari.miyagi.jp
yamamoto.miyagi.jp
zao.miyagi.jp
aya.miyazaki.jp
ebino.miyazaki.jp
gokase.miyazaki.jp
hyuga.miyazaki.jp
kadogawa.miyazaki.jp
kawaminami.miyazaki.jp
kijo.miyazaki.jp
kitagawa.miyazaki.jp
kitakata.miyazaki.jp
kitaura.miyazaki.jp
kobayashi.miyazaki.jp
kunitomi.miyazaki.jp
kushima.miyazaki.jp
mimata.miyazaki.jp
miyakonojo.miyazaki.jp
miyazaki.miyazaki.jp
morotsuka.miyazaki.jp
nichinan.miyazaki.jp
nishimera.miyazaki.jp
nobeoka.miyazaki.jp
saito.miyazaki.jp
shiiba.miyazaki.jp
shintomi.miyazaki.jp
takaharu.miyazaki.jp
takanabe.miyazaki.jp
takazaki.miyazaki.jp
tsuno.miyazaki.jp
achi.nagano.jp
agematsu.nagano.jp
anan.nagano.jp
aoki.nagano.jp
asahi.nagano.jp
azumino.nagano.jp
chikuhoku.nagano.jp
chikuma.nagano.jp
chino.nagano.jp
fujimi.nagano.jp
hakuba.nagano.jp
hara.nagano.jp
hiraya.nagano.jp
iida.nagano.jp
iijima.nagano.jp
iiyama.nagano.jp
iizuna.nagano.jp
ikeda.nagano.jp
ikusaka.nagano.jp
ina.nagano.jp
karuizawa.nagano.jp
kawakami.nagano.jp
kiso.nagano.jp
kisofukushima.nagano.jp
kitaaiki.nagano.jp
komagane.nagano.jp
komoro.nagano.jp
matsukawa.nagano.jp
matsumoto.nagano.jp
miasa.nagano.jp
minamiaiki.nagano.jp
minamimaki.nagano.jp
minamiminowa.nagano.jp
minowa.nagano.jp
miyada.nagano.jp
miyota.nagano.jp
mochizuki.nagano.jp
nagano.nagano.jp
nagawa.nagano.jp
nagiso.nagano.jp
nakagawa.nagano.jp
nakano.nagano.jp
nozawaonsen.nagano.jp
obuse.nagano.jp
ogawa.nagano.jp
okaya.nagano.jp
omachi.nagano.jp
omi.nagano.jp
ookuwa.nagano.jp
ooshika.nagano.jp
otaki.nagano.jp
otari.nagano.jp
sakae.nagano.jp
sakaki.nagano.jp
saku.nagano.jp
sakuho.nagano.jp
shimosuwa.nagano.jp
shinanomachi.nagano.jp
shiojiri.nagano.jp
suwa.nagano.jp
suzaka.nagano.jp
takagi.nagano.jp
takamori.nagano.jp
takayama.nagano.jp
tateshina.nagano.jp
tatsuno.nagano.jp
togakushi.nagano.jp
togura.nagano.jp
tomi.nagano.jp
ueda.nagano.jp
wada.nagano.jp
yamagata.nagano.jp
yamanouchi.nagano.jp
yasaka.nagano.jp
yasuoka.nagano.jp
chijiwa.nagasaki.jp
futsu.nagasaki.jp
goto.nagasaki.jp
hasami.nagasaki.jp
hirado.nagasaki.jp
iki.nagasaki.jp
isahaya.nagasaki.jp
kawatana.nagasaki.jp
kuchinotsu.nagasaki.jp
matsuura.nagasaki.jp
nagasaki.nagasaki.jp
obama.nagasaki.jp
omura.nagasaki.jp
oseto.nagasaki.jp
saikai.nagasaki.jp
sasebo.nagasaki.jp
seihi.nagasaki.jp
shimabara.nagasaki.jp
shinkamigoto.nagasaki.jp
togitsu.nagasaki.jp
tsushima.nagasaki.jp
unzen.nagasaki.jp
ando.nara.jp
gose.nara.jp
heguri.nara.jp
higashiyoshino.nara.jp
ikaruga.nara.jp
ikoma.nara.jp
kamikitayama.nara.jp
kanmaki.nara.jp
kashiba.nara.jp
kashihara.nara.jp
katsuragi.nara.jp
kawai.nara.jp
kawakami.nara.jp
kawanishi.nara.jp
koryo.nara.jp
kurotaki.nara.jp
mitsue.nara.jp
miyake.nara.jp
nara.nara.jp
nosegawa.nara.jp
oji.nara.jp
ouda.nara.jp
oyodo.nara.jp
sakurai.nara.jp
sango.nara.jp
shimoichi.nara.jp
shimokitayama.nara.jp
shinjo.nara.jp
soni.nara.jp
takatori.nara.jp
tawaramoto.nara.jp
tenkawa.nara.jp
tenri.nara.jp
uda.nara.jp
yamatokoriyama.nara.jp
yamatotakada.nara.jp
yamazoe.nara.jp
yoshino.nara.jp
aga.niigata.jp
agano.niigata.jp
gosen.niigata.jp
itoigawa.niigata.jp
izumozaki.niigata.jp
joetsu.niigata.jp
kamo.niigata.jp
kariwa.niigata.jp
kashiwazaki.niigata.jp
minamiuonuma.niigata.jp
mitsuke.niigata.jp
muika.niigata.jp
murakami.niigata.jp
myoko.niigata.jp
nagaoka.niigata.jp
niigata.niigata.jp
ojiya.niigata.jp
omi.niigata.jp
sado.niigata.jp
sanjo.niigata.jp
seiro.niigata.jp
seirou.niigata.jp
sekikawa.niigata.jp
shibata.niigata.jp
tagami.niigata.jp
tainai.niigata.jp
tochio.niigata.jp
tokamachi.niigata.jp
tsubame.niigata.jp
tsunan.niigata.jp
uonuma.niigata.jp
yahiko.niigata.jp
yoita.niigata.jp
yuzawa.niigata.jp
beppu.oita.jp
bungoono.oita.jp
bungotakada.oita.jp
hasama.oita.jp
hiji.oita.jp
himeshima.oita.jp
hita.oita.jp
kamitsue.oita.jp
kokonoe.oita.jp
kuju.oita.jp
kunisaki.oita.jp
kusu.oita.jp
oita.oita.jp
saiki.oita.jp
taketa.oita.jp
tsukumi.oita.jp
usa.oita.jp
usuki.oita.jp
yufu.oita.jp
akaiwa.okayama.jp
asakuchi.okayama.jp
bizen.okayama.jp
hayashima.okayama.jp
ibara.okayama.jp
kagamino.okayama.jp
kasaoka.okayama.jp
kibichuo.okayama.jp
kumenan.okayama.jp
kurashiki.okayama.jp
maniwa.okayama.jp
misaki.okayama.jp
nagi.okayama.jp
niimi.okayama.jp
nishiawakura.okayama.jp
okayama.okayama.jp
satosho.okayama.jp
setouchi.okayama.jp
shinjo.okayama.jp
shoo.okayama.jp
soja.okayama.jp
takahashi.okayama.jp
tamano.okayama.jp
tsuyama.okayama.jp
wake.okayama.jp
yakage.okayama.jp
aguni.okinawa.jp
ginowan.okinawa.jp
ginoza.okinawa.jp
gushikami.okinawa.jp
haebaru.okinawa.jp
higashi.okinawa.jp
hirara.okinawa.jp
iheya.okinawa.jp
ishigaki.okinawa.jp
ishikawa.okinawa.jp
itoman.okinawa.jp
izena.okinawa.jp
kadena.okinawa.jp
kin.okinawa.jp
kitadaito.okinawa.jp
kitanakagusuku.okinawa.jp
kumejima.okinawa.jp
kunigami.okinawa.jp
minamidaito.okinawa.jp
motobu.okinawa.jp
nago.okinawa.jp
naha.okinawa.jp
nakagusuku.okinawa.jp
nakijin.okinawa.jp
nanjo.okinawa.jp
nishihara.okinawa.jp
ogimi.okinawa.jp
okinawa.okinawa.jp
onna.okinawa.jp
shimoji.okinawa.jp
taketomi.okinawa.jp
tarama.okinawa.jp
tokashiki.okinawa.jp
tomigusuku.okinawa.jp
tonaki.okinawa.jp
urasoe.okinawa.jp
uruma.okinawa.jp
yaese.okinawa.jp
yomitan.okinawa.jp
yonabaru.okinawa.jp
yonaguni.okinawa.jp
zamami.okinawa.jp
abeno.osaka.jp
chihayaakasaka.osaka.jp
chuo.osaka.jp
daito.osaka.jp
fujiidera.osaka.jp
habikino.osaka.jp
hannan.osaka.jp
higashiosaka.osaka.jp
higashisumiyoshi.osaka.jp
higashiyodogawa.osaka.jp
hirakata.osaka.jp
ibaraki.osaka.jp
ikeda.osaka.jp
izumi.osaka.jp
izumiotsu.osaka.jp
izumisano.osaka.jp
kadoma.osaka.jp
kaizuka.osaka.jp
kanan.osaka.jp
kashiwara.osaka.jp
katano.osaka.jp
kawachinagano.osaka.jp
kishiwada.osaka.jp
kita.osaka.jp
kumatori.osaka.jp
matsubara.osaka.jp
minato.osaka.jp
minoh.osaka.jp
misaki.osaka.jp
moriguchi.osaka.jp
neyagawa.osaka.jp
nishi.osaka.jp
nose.osaka.jp
osakasayama.osaka.jp
sakai.osaka.jp
sayama.osaka.jp
sennan.osaka.jp
settsu.osaka.jp
shijonawate.osaka.jp
shimamoto.osaka.jp
suita.osaka.jp
tadaoka.osaka.jp
taishi.osaka.jp
tajiri.osaka.jp
takaishi.osaka.jp
takatsuki.osaka.jp
tondabayashi.osaka.jp
toyonaka.osaka.jp
toyono.osaka.jp
yao.osaka.jp
ariake.saga.jp
arita.saga.jp
fukudomi.saga.jp
genkai.saga.jp
hamatama.saga.jp
hizen.saga.jp
imari.saga.jp
kamimine.saga.jp
kanzaki.saga.jp
karatsu.saga.jp
kashima.saga.jp
kitagata.saga.jp
kitahata.saga.jp
kiyama.saga.jp
kouhoku.saga.jp
kyuragi.saga.jp
nishiarita.saga.jp
ogi.saga.jp
omachi.saga.jp
ouchi.saga.jp
saga.saga.jp
shiroishi.saga.jp
taku.saga.jp
tara.saga.jp
tosu.saga.jp
yoshinogari.saga.jp
arakawa.saitama.jp
asaka.saitama.jp
chichibu.saitama.jp
fujimi.saitama.jp
fujimino.saitama.jp
fukaya.saitama.jp
hanno.saitama.jp
hanyu.saitama.jp
hasuda.saitama.jp
hatogaya.saitama.jp
hatoyama.saitama.jp
hidaka.saitama.jp
higashichichibu.saitama.jp
higashimatsuyama.saitama.jp
honjo.saitama.jp
ina.saitama.jp
iruma.saitama.jp
iwatsuki.saitama.jp
kamiizumi.saitama.jp
kamikawa.saitama.jp
kamisato.saitama.jp
kasukabe.saitama.jp
kawagoe.saitama.jp
kawaguchi.saitama.jp
kawajima.saitama.jp
kazo.saitama.jp
kitamoto.saitama.jp
koshigaya.saitama.jp
kounosu.saitama.jp
kuki.saitama.jp
kumagaya.saitama.jp
matsubushi.saitama.jp
minano.saitama.jp
misato.saitama.jp
miyashiro.saitama.jp
miyoshi.saitama.jp
moroyama.saitama.jp
nagatoro.saitama.jp
namegawa.saitama.jp
niiza.saitama.jp
ogano.saitama.jp
ogawa.saitama.jp
ogose.saitama.jp
okegawa.saitama.jp
omiya.saitama.jp
otaki.saitama.jp
ranzan.saitama.jp
ryokami.saitama.jp
saitama.saitama.jp
sakado.saitama.jp
satte.saitama.jp
sayama.saitama.jp
shiki.saitama.jp
shiraoka.saitama.jp
soka.saitama.jp
sugito.saitama.jp
toda.saitama.jp
tokigawa.saitama.jp
tokorozawa.saitama.jp
tsurugashima.saitama.jp
urawa.saitama.jp
warabi.saitama.jp
yashio.saitama.jp
yokoze.saitama.jp
yono.saitama.jp
yorii.saitama.jp
yoshida.saitama.jp
yoshikawa.saitama.jp
yoshimi.saitama.jp
aisho.shiga.jp
gamo.shiga.jp
higashiomi.shiga.jp
hikone.shiga.jp
koka.shiga.jp
konan.shiga.jp
kosei.shiga.jp
koto.shiga.jp
kusatsu.shiga.jp
maibara.shiga.jp
moriyama.shiga.jp
nagahama.shiga.jp
nishiazai.shiga.jp
notogawa.shiga.jp
omihachiman.shiga.jp
otsu.shiga.jp
ritto.shiga.jp
ryuoh.shiga.jp
takashima.shiga.jp
takatsuki.shiga.jp
torahime.shiga.jp
toyosato.shiga.jp
yasu.shiga.jp
akagi.shimane.jp
ama.shimane.jp
gotsu.shimane.jp
hamada.shimane.jp
higashiizumo.shimane.jp
hikawa.shimane.jp
hikimi.shimane.jp
izumo.shimane.jp
kakinoki.shimane.jp
masuda.shimane.jp
matsue.shimane.jp
misato.shimane.jp
nishinoshima.shimane.jp
ohda.shimane.jp
okinoshima.shimane.jp
okuizumo.shimane.jp
shimane.shimane.jp
tamayu.shimane.jp
tsuwano.shimane.jp
unnan.shimane.jp
yakumo.shimane.jp
yasugi.shimane.jp
yatsuka.shimane.jp
arai.shizuoka.jp
atami.shizuoka.jp
fuji.shizuoka.jp
fujieda.shizuoka.jp
fujikawa.shizuoka.jp
fujinomiya.shizuoka.jp
fukuroi.shizuoka.jp
gotemba.shizuoka.jp
haibara.shizuoka.jp
hamamatsu.shizuoka.jp
higashiizu.shizuoka.jp
ito.shizuoka.jp
iwata.shizuoka.jp
izu.shizuoka.jp
izunokuni.shizuoka.jp
kakegawa.shizuoka.jp
kannami.shizuoka.jp
kawanehon.shizuoka.jp
kawazu.shizuoka.jp
kikugawa.shizuoka.jp
kosai.shizuoka.jp
makinohara.shizuoka.jp
matsuzaki.shizuoka.jp
minamiizu.shizuoka.jp
mishima.shizuoka.jp
morimachi.shizuoka.jp
nishiizu.shizuoka.jp
numazu.shizuoka.jp
omaezaki.shizuoka.jp
shimada.shizuoka.jp
shimizu.shizuoka.jp
shimoda.shizuoka.jp
shizuoka.shizuoka.jp
susono.shizuoka.jp
yaizu.shizuoka.jp
yoshida.shizuoka.jp
ashikaga.tochigi.jp
bato.tochigi.jp
haga.tochigi.jp
ichikai.tochigi.jp
iwafune.tochigi.jp
kaminokawa.tochigi.jp
kanuma.tochigi.jp
karasuyama.tochigi.jp
kuroiso.tochigi.jp
mashiko.tochigi.jp
mibu.tochigi.jp
moka.tochigi.jp
motegi.tochigi.jp
nasu.tochigi.jp
nasushiobara.tochigi.jp
nikko.tochigi.jp
nishikata.tochigi.jp
nogi.tochigi.jp
ohira.tochigi.jp
ohtawara.tochigi.jp
oyama.tochigi.jp
sakura.tochigi.jp
sano.tochigi.jp
shimotsuke.tochigi.jp
shioya.tochigi.jp
takanezawa.tochigi.jp
tochigi.tochigi.jp
tsuga.tochigi.jp
ujiie.tochigi.jp
utsunomiya.tochigi.jp
yaita.tochigi.jp
aizumi.tokushima.jp
anan.tokushima.jp
ichiba.tokushima.jp
itano.tokushima.jp
kainan.tokushima.jp
komatsushima.tokushima.jp
matsushige.tokushima.jp
mima.tokushima.jp
minami.tokushima.jp
miyoshi.tokushima.jp
mugi.tokushima.jp
nakagawa.tokushima.jp
naruto.tokushima.jp
sanagochi.tokushima.jp
shishikui.tokushima.jp
tokushima.tokushima.jp
wajiki.tokushima.jp
adachi.tokyo.jp
akiruno.tokyo.jp
akishima.tokyo.jp
aogashima.tokyo.jp
arakawa.tokyo.jp
bunkyo.tokyo.jp
chiyoda.tokyo.jp
chofu.tokyo.jp
chuo.tokyo.jp
edogawa.tokyo.jp
fuchu.tokyo.jp
fussa.tokyo.jp
hachijo.tokyo.jp
hachioji.tokyo.jp
hamura.tokyo.jp
higashikurume.tokyo.jp
higashimurayama.tokyo.jp
higashiyamato.tokyo.jp
hino.tokyo.jp
hinode.tokyo.jp
hinohara.tokyo.jp
inagi.tokyo.jp
itabashi.tokyo.jp
katsushika.tokyo.jp
kita.tokyo.jp
kiyose.tokyo.jp
kodaira.tokyo.jp
koganei.tokyo.jp
kokubunji.tokyo.jp
komae.tokyo.jp
koto.tokyo.jp
kouzushima.tokyo.jp
kunitachi.tokyo.jp
machida.tokyo.jp
meguro.tokyo.jp
minato.tokyo.jp
mitaka.tokyo.jp
mizuho.tokyo.jp
musashimurayama.tokyo.jp
musashino.tokyo.jp
nakano.tokyo.jp
nerima.tokyo.jp
ogasawara.tokyo.jp
okutama.tokyo.jp
ome.tokyo.jp
oshima.tokyo.jp
ota.tokyo.jp
setagaya.tokyo.jp
shibuya.tokyo.jp
shinagawa.tokyo.jp
shinjuku.tokyo.jp
suginami.tokyo.jp
sumida.tokyo.jp
tachikawa.tokyo.jp
taito.tokyo.jp
tama.tokyo.jp
toshima.tokyo.jp
chizu.tottori.jp
hino.tottori.jp
kawahara.tottori.jp
koge.tottori.jp
kotoura.tottori.jp
misasa.tottori.jp
nanbu.tottori.jp
nichinan.tottori.jp
sakaiminato.tottori.jp
tottori.tottori.jp
wakasa.tottori.jp
yazu.tottori.jp
yonago.tottori.jp
asahi.toyama.jp
fuchu.toyama.jp
fukumitsu.toyama.jp
funahashi.toyama.jp
himi.toyama.jp
imizu.toyama.jp
inami.toyama.jp
johana.toyama.jp
kamiichi.toyama.jp
kurobe.toyama.jp
nakaniikawa.toyama.jp
namerikawa.toyama.jp
nanto.toyama.jp
nyuzen.toyama.jp
oyabe.toyama.jp
taira.toyama.jp
takaoka.toyama.jp
tateyama.toyama.jp
toga.toyama.jp
tonami.toyama.jp
toyama.toyama.jp
unazuki.toyama.jp
uozu.toyama.jp
yamada.toyama.jp
arida.wakayama.jp
aridagawa.wakayama.jp
gobo.wakayama.jp
hashimoto.wakayama.jp
hidaka.wakayama.jp
hirogawa.wakayama.jp
inami.wakayama.jp
iwade.wakayama.jp
kainan.wakayama.jp
kamitonda.wakayama.jp
katsuragi.wakayama.jp
kimino.wakayama.jp
kinokawa.wakayama.jp
kitayama.wakayama.jp
koya.wakayama.jp
koza.wakayama.jp
kozagawa.wakayama.jp
kudoyama.wakayama.jp
kushimoto.wakayama.jp
mihama.wakayama.jp
misato.wakayama.jp
nachikatsuura.wakayama.jp
shingu.wakayama.jp
shirahama.wakayama.jp
taiji.wakayama.jp
tanabe.wakayama.jp
wakayama.wakayama.jp
yuasa.wakayama.jp
yura.wakayama.jp
asahi.yamagata.jp
funagata.yamagata.jp
higashine.yamagata.jp
iide.yamagata.jp
kahoku.yamagata.jp
kaminoyama.yamagata.jp
kaneyama.yamagata.jp
kawanishi.yamagata.jp
mamurogawa.yamagata.jp
mikawa.yamagata.jp
murayama.yamagata.jp
nagai.yamagata.jp
nakayama.yamagata.jp
nanyo.yamagata.jp
nishikawa.yamagata.jp
obanazawa.yamagata.jp
oe.yamagata.jp
oguni.yamagata.jp
ohkura.yamagata.jp
oishida.yamagata.jp
sagae.yamagata.jp
sakata.yamagata.jp
sakegawa.yamagata.jp
shinjo.yamagata.jp
shirataka.yamagata.jp
shonai.yamagata.jp
takahata.yamagata.jp
tendo.yamagata.jp
tozawa.yamagata.jp
tsuruoka.yamagata.jp
yamagata.yamagata.jp
yamanobe.yamagata.jp
yonezawa.yamagata.jp
yuza.yamagata.jp
abu.yamaguchi.jp
hagi.yamaguchi.jp
hikari.yamaguchi.jp
hofu.yamaguchi.jp
iwakuni.yamaguchi.jp
kudamatsu.yamaguchi.jp
mitou.yamaguchi.jp
nagato.yamaguchi.jp
oshima.yamaguchi.jp
shimonoseki.yamaguchi.jp
shunan.yamaguchi.jp
tabuse.yamaguchi.jp
tokuyama.yamaguchi.jp
toyota.yamaguchi.jp
ube.yamaguchi.jp
yuu.yamaguchi.jp
chuo.yamanashi.jp
doshi.yamanashi.jp
fuefuki.yamanashi.jp
fujikawa.yamanashi.jp
fujikawaguchiko.yamanashi.jp
fujiyoshida.yamanashi.jp
hayakawa.yamanashi.jp
hokuto.yamanashi.jp
ichikawamisato.yamanashi.jp
kai.yamanashi.jp
kofu.yamanashi.jp
koshu.yamanashi.jp
kosuge.yamanashi.jp
minami-alps.yamanashi.jp
minobu.yamanashi.jp
nakamichi.yamanashi.jp
nanbu.yamanashi.jp
narusawa.yamanashi.jp
nirasaki.yamanashi.jp
nishikatsura.yamanashi.jp
oshino.yamanashi.jp
otsuki.yamanashi.jp
showa.yamanashi.jp
tabayama.yamanashi.jp
tsuru.yamanashi.jp
uenohara.yamanashi.jp
yamanakako.yamanashi.jp
yamanashi.yamanashi.jp
// ke : http://www.kenic.or.ke/index.php?option=com_content&task=view&id=117&Itemid=145
*.ke
// kg : http://www.domain.kg/dmn_n.html
kg
org.kg
net.kg
com.kg
edu.kg
gov.kg
mil.kg
// kh : http://www.mptc.gov.kh/dns_registration.htm
*.kh
// ki : http://www.ki/dns/index.html
ki
edu.ki
biz.ki
net.ki
org.ki
gov.ki
info.ki
com.ki
// km : http://en.wikipedia.org/wiki/.km
// http://www.domaine.km/documents/charte.doc
km
org.km
nom.km
gov.km
prd.km
tm.km
edu.km
mil.km
ass.km
com.km
// These are only mentioned as proposed suggestions at domaine.km, but
// http://en.wikipedia.org/wiki/.km says they're available for registration:
coop.km
asso.km
presse.km
medecin.km
notaires.km
pharmaciens.km
veterinaire.km
gouv.km
// kn : http://en.wikipedia.org/wiki/.kn
// http://www.dot.kn/domainRules.html
kn
net.kn
org.kn
edu.kn
gov.kn
// kp : http://www.kcce.kp/en_index.php
kp
com.kp
edu.kp
gov.kp
org.kp
rep.kp
tra.kp
// kr : http://en.wikipedia.org/wiki/.kr
// see also: http://domain.nida.or.kr/eng/registration.jsp
kr
ac.kr
co.kr
es.kr
go.kr
hs.kr
kg.kr
mil.kr
ms.kr
ne.kr
or.kr
pe.kr
re.kr
sc.kr
// kr geographical names
busan.kr
chungbuk.kr
chungnam.kr
daegu.kr
daejeon.kr
gangwon.kr
gwangju.kr
gyeongbuk.kr
gyeonggi.kr
gyeongnam.kr
incheon.kr
jeju.kr
jeonbuk.kr
jeonnam.kr
seoul.kr
ulsan.kr
// kw : http://en.wikipedia.org/wiki/.kw
*.kw
// ky : http://www.icta.ky/da_ky_reg_dom.php
// Confirmed by registry 2008-06-17
ky
edu.ky
gov.ky
com.ky
org.ky
net.ky
// kz : http://en.wikipedia.org/wiki/.kz
// see also: http://www.nic.kz/rules/index.jsp
kz
org.kz
edu.kz
net.kz
gov.kz
mil.kz
com.kz
// la : http://en.wikipedia.org/wiki/.la
// Submitted by registry 2008-06-10
la
int.la
net.la
info.la
edu.la
gov.la
per.la
com.la
org.la
// lb : http://en.wikipedia.org/wiki/.lb
// Submitted by registry 2008-06-17
lb
com.lb
edu.lb
gov.lb
net.lb
org.lb
// lc : http://en.wikipedia.org/wiki/.lc
// see also: http://www.nic.lc/rules.htm
lc
com.lc
net.lc
co.lc
org.lc
edu.lc
gov.lc
// li : http://en.wikipedia.org/wiki/.li
li
// lk : http://www.nic.lk/seclevpr.html
lk
gov.lk
sch.lk
net.lk
int.lk
com.lk
org.lk
edu.lk
ngo.lk
soc.lk
web.lk
ltd.lk
assn.lk
grp.lk
hotel.lk
// lr : http://psg.com/dns/lr/lr.txt
// Submitted by registry 2008-06-17
lr
com.lr
edu.lr
gov.lr
org.lr
net.lr
// ls : http://en.wikipedia.org/wiki/.ls
ls
co.ls
org.ls
// lt : http://en.wikipedia.org/wiki/.lt
lt
// gov.lt : http://www.gov.lt/index_en.php
gov.lt
// lu : http://www.dns.lu/en/
lu
// lv : http://www.nic.lv/DNS/En/generic.php
lv
com.lv
edu.lv
gov.lv
org.lv
mil.lv
id.lv
net.lv
asn.lv
conf.lv
// ly : http://www.nic.ly/regulations.php
ly
com.ly
net.ly
gov.ly
plc.ly
edu.ly
sch.ly
med.ly
org.ly
id.ly
// ma : http://en.wikipedia.org/wiki/.ma
// http://www.anrt.ma/fr/admin/download/upload/file_fr782.pdf
ma
co.ma
net.ma
gov.ma
org.ma
ac.ma
press.ma
// mc : http://www.nic.mc/
mc
tm.mc
asso.mc
// md : http://en.wikipedia.org/wiki/.md
md
// me : http://en.wikipedia.org/wiki/.me
me
co.me
net.me
org.me
edu.me
ac.me
gov.me
its.me
priv.me
// mg : http://www.nic.mg/tarif.htm
mg
org.mg
nom.mg
gov.mg
prd.mg
tm.mg
edu.mg
mil.mg
com.mg
// mh : http://en.wikipedia.org/wiki/.mh
mh
// mil : http://en.wikipedia.org/wiki/.mil
mil
// mk : http://en.wikipedia.org/wiki/.mk
// see also: http://dns.marnet.net.mk/postapka.php
mk
com.mk
org.mk
net.mk
edu.mk
gov.mk
inf.mk
name.mk
// ml : http://www.gobin.info/domainname/ml-template.doc
// see also: http://en.wikipedia.org/wiki/.ml
ml
com.ml
edu.ml
gouv.ml
gov.ml
net.ml
org.ml
presse.ml
// mm : http://en.wikipedia.org/wiki/.mm
*.mm
// mn : http://en.wikipedia.org/wiki/.mn
mn
gov.mn
edu.mn
org.mn
// mo : http://www.monic.net.mo/
mo
com.mo
net.mo
org.mo
edu.mo
gov.mo
// mobi : http://en.wikipedia.org/wiki/.mobi
mobi
// mp : http://www.dot.mp/
// Confirmed by registry 2008-06-17
mp
// mq : http://en.wikipedia.org/wiki/.mq
mq
// mr : http://en.wikipedia.org/wiki/.mr
mr
gov.mr
// ms : http://www.nic.ms/pdf/MS_Domain_Name_Rules.pdf
ms
com.ms
edu.ms
gov.ms
net.ms
org.ms
// mt : https://www.nic.org.mt/go/policy
// Submitted by registry 2013-11-19
mt
com.mt
edu.mt
net.mt
org.mt
// mu : http://en.wikipedia.org/wiki/.mu
mu
com.mu
net.mu
org.mu
gov.mu
ac.mu
co.mu
or.mu
// museum : http://about.museum/naming/
// http://index.museum/
museum
academy.museum
agriculture.museum
air.museum
airguard.museum
alabama.museum
alaska.museum
amber.museum
ambulance.museum
american.museum
americana.museum
americanantiques.museum
americanart.museum
amsterdam.museum
and.museum
annefrank.museum
anthro.museum
anthropology.museum
antiques.museum
aquarium.museum
arboretum.museum
archaeological.museum
archaeology.museum
architecture.museum
art.museum
artanddesign.museum
artcenter.museum
artdeco.museum
arteducation.museum
artgallery.museum
arts.museum
artsandcrafts.museum
asmatart.museum
assassination.museum
assisi.museum
association.museum
astronomy.museum
atlanta.museum
austin.museum
australia.museum
automotive.museum
aviation.museum
axis.museum
badajoz.museum
baghdad.museum
bahn.museum
bale.museum
baltimore.museum
barcelona.museum
baseball.museum
basel.museum
baths.museum
bauern.museum
beauxarts.museum
beeldengeluid.museum
bellevue.museum
bergbau.museum
berkeley.museum
berlin.museum
bern.museum
bible.museum
bilbao.museum
bill.museum
birdart.museum
birthplace.museum
bonn.museum
boston.museum
botanical.museum
botanicalgarden.museum
botanicgarden.museum
botany.museum
brandywinevalley.museum
brasil.museum
bristol.museum
british.museum
britishcolumbia.museum
broadcast.museum
brunel.museum
brussel.museum
brussels.museum
bruxelles.museum
building.museum
burghof.museum
bus.museum
bushey.museum
cadaques.museum
california.museum
cambridge.museum
can.museum
canada.museum
capebreton.museum
carrier.museum
cartoonart.museum
casadelamoneda.museum
castle.museum
castres.museum
celtic.museum
center.museum
chattanooga.museum
cheltenham.museum
chesapeakebay.museum
chicago.museum
children.museum
childrens.museum
childrensgarden.museum
chiropractic.museum
chocolate.museum
christiansburg.museum
cincinnati.museum
cinema.museum
circus.museum
civilisation.museum
civilization.museum
civilwar.museum
clinton.museum
clock.museum
coal.museum
coastaldefence.museum
cody.museum
coldwar.museum
collection.museum
colonialwilliamsburg.museum
coloradoplateau.museum
columbia.museum
columbus.museum
communication.museum
communications.museum
community.museum
computer.museum
computerhistory.museum
comunicações.museum
contemporary.museum
contemporaryart.museum
convent.museum
copenhagen.museum
corporation.museum
correios-e-telecomunicações.museum
corvette.museum
costume.museum
countryestate.museum
county.museum
crafts.museum
cranbrook.museum
creation.museum
cultural.museum
culturalcenter.museum
culture.museum
cyber.museum
cymru.museum
dali.museum
dallas.museum
database.museum
ddr.museum
decorativearts.museum
delaware.museum
delmenhorst.museum
denmark.museum
depot.museum
design.museum
detroit.museum
dinosaur.museum
discovery.museum
dolls.museum
donostia.museum
durham.museum
eastafrica.museum
eastcoast.museum
education.museum
educational.museum
egyptian.museum
eisenbahn.museum
elburg.museum
elvendrell.museum
embroidery.museum
encyclopedic.museum
england.museum
entomology.museum
environment.museum
environmentalconservation.museum
epilepsy.museum
essex.museum
estate.museum
ethnology.museum
exeter.museum
exhibition.museum
family.museum
farm.museum
farmequipment.museum
farmers.museum
farmstead.museum
field.museum
figueres.museum
filatelia.museum
film.museum
fineart.museum
finearts.museum
finland.museum
flanders.museum
florida.museum
force.museum
fortmissoula.museum
fortworth.museum
foundation.museum
francaise.museum
frankfurt.museum
franziskaner.museum
freemasonry.museum
freiburg.museum
fribourg.museum
frog.museum
fundacio.museum
furniture.museum
gallery.museum
garden.museum
gateway.museum
geelvinck.museum
gemological.museum
geology.museum
georgia.museum
giessen.museum
glas.museum
glass.museum
gorge.museum
grandrapids.museum
graz.museum
guernsey.museum
halloffame.museum
hamburg.museum
handson.museum
harvestcelebration.museum
hawaii.museum
health.museum
heimatunduhren.museum
hellas.museum
helsinki.museum
hembygdsforbund.museum
heritage.museum
histoire.museum
historical.museum
historicalsociety.museum
historichouses.museum
historisch.museum
historisches.museum
history.museum
historyofscience.museum
horology.museum
house.museum
humanities.museum
illustration.museum
imageandsound.museum
indian.museum
indiana.museum
indianapolis.museum
indianmarket.museum
intelligence.museum
interactive.museum
iraq.museum
iron.museum
isleofman.museum
jamison.museum
jefferson.museum
jerusalem.museum
jewelry.museum
jewish.museum
jewishart.museum
jfk.museum
journalism.museum
judaica.museum
judygarland.museum
juedisches.museum
juif.museum
karate.museum
karikatur.museum
kids.museum
koebenhavn.museum
koeln.museum
kunst.museum
kunstsammlung.museum
kunstunddesign.museum
labor.museum
labour.museum
lajolla.museum
lancashire.museum
landes.museum
lans.museum
läns.museum
larsson.museum
lewismiller.museum
lincoln.museum
linz.museum
living.museum
livinghistory.museum
localhistory.museum
london.museum
losangeles.museum
louvre.museum
loyalist.museum
lucerne.museum
luxembourg.museum
luzern.museum
mad.museum
madrid.museum
mallorca.museum
manchester.museum
mansion.museum
mansions.museum
manx.museum
marburg.museum
maritime.museum
maritimo.museum
maryland.museum
marylhurst.museum
media.museum
medical.museum
medizinhistorisches.museum
meeres.museum
memorial.museum
mesaverde.museum
michigan.museum
midatlantic.museum
military.museum
mill.museum
miners.museum
mining.museum
minnesota.museum
missile.museum
missoula.museum
modern.museum
moma.museum
money.museum
monmouth.museum
monticello.museum
montreal.museum
moscow.museum
motorcycle.museum
muenchen.museum
muenster.museum
mulhouse.museum
muncie.museum
museet.museum
museumcenter.museum
museumvereniging.museum
music.museum
national.museum
nationalfirearms.museum
nationalheritage.museum
nativeamerican.museum
naturalhistory.museum
naturalhistorymuseum.museum
naturalsciences.museum
nature.museum
naturhistorisches.museum
natuurwetenschappen.museum
naumburg.museum
naval.museum
nebraska.museum
neues.museum
newhampshire.museum
newjersey.museum
newmexico.museum
newport.museum
newspaper.museum
newyork.museum
niepce.museum
norfolk.museum
north.museum
nrw.museum
nuernberg.museum
nuremberg.museum
nyc.museum
nyny.museum
oceanographic.museum
oceanographique.museum
omaha.museum
online.museum
ontario.museum
openair.museum
oregon.museum
oregontrail.museum
otago.museum
oxford.museum
pacific.museum
paderborn.museum
palace.museum
paleo.museum
palmsprings.museum
panama.museum
paris.museum
pasadena.museum
pharmacy.museum
philadelphia.museum
philadelphiaarea.museum
philately.museum
phoenix.museum
photography.museum
pilots.museum
pittsburgh.museum
planetarium.museum
plantation.museum
plants.museum
plaza.museum
portal.museum
portland.museum
portlligat.museum
posts-and-telecommunications.museum
preservation.museum
presidio.museum
press.museum
project.museum
public.museum
pubol.museum
quebec.museum
railroad.museum
railway.museum
research.museum
resistance.museum
riodejaneiro.museum
rochester.museum
rockart.museum
roma.museum
russia.museum
saintlouis.museum
salem.museum
salvadordali.museum
salzburg.museum
sandiego.museum
sanfrancisco.museum
santabarbara.museum
santacruz.museum
santafe.museum
saskatchewan.museum
satx.museum
savannahga.museum
schlesisches.museum
schoenbrunn.museum
schokoladen.museum
school.museum
schweiz.museum
science.museum
scienceandhistory.museum
scienceandindustry.museum
sciencecenter.museum
sciencecenters.museum
science-fiction.museum
sciencehistory.museum
sciences.museum
sciencesnaturelles.museum
scotland.museum
seaport.museum
settlement.museum
settlers.museum
shell.museum
sherbrooke.museum
sibenik.museum
silk.museum
ski.museum
skole.museum
society.museum
sologne.museum
soundandvision.museum
southcarolina.museum
southwest.museum
space.museum
spy.museum
square.museum
stadt.museum
stalbans.museum
starnberg.museum
state.museum
stateofdelaware.museum
station.museum
steam.museum
steiermark.museum
stjohn.museum
stockholm.museum
stpetersburg.museum
stuttgart.museum
suisse.museum
surgeonshall.museum
surrey.museum
svizzera.museum
sweden.museum
sydney.museum
tank.museum
tcm.museum
technology.museum
telekommunikation.museum
television.museum
texas.museum
textile.museum
theater.museum
time.museum
timekeeping.museum
topology.museum
torino.museum
touch.museum
town.museum
transport.museum
tree.museum
trolley.museum
trust.museum
trustee.museum
uhren.museum
ulm.museum
undersea.museum
university.museum
usa.museum
usantiques.museum
usarts.museum
uscountryestate.museum
usculture.museum
usdecorativearts.museum
usgarden.museum
ushistory.museum
ushuaia.museum
uslivinghistory.museum
utah.museum
uvic.museum
valley.museum
vantaa.museum
versailles.museum
viking.museum
village.museum
virginia.museum
virtual.museum
virtuel.museum
vlaanderen.museum
volkenkunde.museum
wales.museum
wallonie.museum
war.museum
washingtondc.museum
watchandclock.museum
watch-and-clock.museum
western.museum
westfalen.museum
whaling.museum
wildlife.museum
williamsburg.museum
windmill.museum
workshop.museum
york.museum
yorkshire.museum
yosemite.museum
youth.museum
zoological.museum
zoology.museum
ירושלים.museum
иком.museum
// mv : http://en.wikipedia.org/wiki/.mv
// "mv" included because, contra Wikipedia, google.mv exists.
mv
aero.mv
biz.mv
com.mv
coop.mv
edu.mv
gov.mv
info.mv
int.mv
mil.mv
museum.mv
name.mv
net.mv
org.mv
pro.mv
// mw : http://www.registrar.mw/
mw
ac.mw
biz.mw
co.mw
com.mw
coop.mw
edu.mw
gov.mw
int.mw
museum.mw
net.mw
org.mw
// mx : http://www.nic.mx/
// Submitted by registry 2008-06-19
mx
com.mx
org.mx
gob.mx
edu.mx
net.mx
// my : http://www.mynic.net.my/
my
com.my
net.my
org.my
gov.my
edu.my
mil.my
name.my
// mz : http://www.gobin.info/domainname/mz-template.doc
*.mz
!teledata.mz
// na : http://www.na-nic.com.na/
// http://www.info.na/domain/
na
info.na
pro.na
name.na
school.na
or.na
dr.na
us.na
mx.na
ca.na
in.na
cc.na
tv.na
ws.na
mobi.na
co.na
com.na
org.na
// name : has 2nd-level tlds, but there's no list of them
name
// nc : http://www.cctld.nc/
nc
asso.nc
// ne : http://en.wikipedia.org/wiki/.ne
ne
// net : http://en.wikipedia.org/wiki/.net
net
// nf : http://en.wikipedia.org/wiki/.nf
nf
com.nf
net.nf
per.nf
rec.nf
web.nf
arts.nf
firm.nf
info.nf
other.nf
store.nf
// ng : http://psg.com/dns/ng/
ng
com.ng
edu.ng
name.ng
net.ng
org.ng
sch.ng
gov.ng
mil.ng
mobi.ng
// ni : http://www.nic.ni/dominios.htm
*.ni
// nl : http://www.domain-registry.nl/ace.php/c,728,122,,,,Home.html
// Confirmed by registry (with technical
// reservations) 2008-06-08
nl
// BV.nl will be a registry for dutch BV's (besloten vennootschap)
bv.nl
// no : http://www.norid.no/regelverk/index.en.html
// The Norwegian registry has declined to notify us of updates. The web pages
// referenced below are the official source of the data. There is also an
// announce mailing list:
// https://postlister.uninett.no/sympa/info/norid-diskusjon
no
// Norid generic domains : http://www.norid.no/regelverk/vedlegg-c.en.html
fhs.no
vgs.no
fylkesbibl.no
folkebibl.no
museum.no
idrett.no
priv.no
// Non-Norid generic domains : http://www.norid.no/regelverk/vedlegg-d.en.html
mil.no
stat.no
dep.no
kommune.no
herad.no
// no geographical names : http://www.norid.no/regelverk/vedlegg-b.en.html
// counties
aa.no
ah.no
bu.no
fm.no
hl.no
hm.no
jan-mayen.no
mr.no
nl.no
nt.no
of.no
ol.no
oslo.no
rl.no
sf.no
st.no
svalbard.no
tm.no
tr.no
va.no
vf.no
// primary and lower secondary schools per county
gs.aa.no
gs.ah.no
gs.bu.no
gs.fm.no
gs.hl.no
gs.hm.no
gs.jan-mayen.no
gs.mr.no
gs.nl.no
gs.nt.no
gs.of.no
gs.ol.no
gs.oslo.no
gs.rl.no
gs.sf.no
gs.st.no
gs.svalbard.no
gs.tm.no
gs.tr.no
gs.va.no
gs.vf.no
// cities
akrehamn.no
åkrehamn.no
algard.no
ålgård.no
arna.no
brumunddal.no
bryne.no
bronnoysund.no
brønnøysund.no
drobak.no
drøbak.no
egersund.no
fetsund.no
floro.no
florø.no
fredrikstad.no
hokksund.no
honefoss.no
hønefoss.no
jessheim.no
jorpeland.no
jørpeland.no
kirkenes.no
kopervik.no
krokstadelva.no
langevag.no
langevåg.no
leirvik.no
mjondalen.no
mjøndalen.no
mo-i-rana.no
mosjoen.no
mosjøen.no
nesoddtangen.no
orkanger.no
osoyro.no
osøyro.no
raholt.no
råholt.no
sandnessjoen.no
sandnessjøen.no
skedsmokorset.no
slattum.no
spjelkavik.no
stathelle.no
stavern.no
stjordalshalsen.no
stjørdalshalsen.no
tananger.no
tranby.no
vossevangen.no
// communities
afjord.no
åfjord.no
agdenes.no
al.no
ål.no
alesund.no
ålesund.no
alstahaug.no
alta.no
áltá.no
alaheadju.no
álaheadju.no
alvdal.no
amli.no
åmli.no
amot.no
åmot.no
andebu.no
andoy.no
andøy.no
andasuolo.no
ardal.no
årdal.no
aremark.no
arendal.no
ås.no
aseral.no
åseral.no
asker.no
askim.no
askvoll.no
askoy.no
askøy.no
asnes.no
åsnes.no
audnedaln.no
aukra.no
aure.no
aurland.no
aurskog-holand.no
aurskog-høland.no
austevoll.no
austrheim.no
averoy.no
averøy.no
balestrand.no
ballangen.no
balat.no
bálát.no
balsfjord.no
bahccavuotna.no
báhccavuotna.no
bamble.no
bardu.no
beardu.no
beiarn.no
bajddar.no
bájddar.no
baidar.no
báidár.no
berg.no
bergen.no
berlevag.no
berlevåg.no
bearalvahki.no
bearalváhki.no
bindal.no
birkenes.no
bjarkoy.no
bjarkøy.no
bjerkreim.no
bjugn.no
bodo.no
bodø.no
badaddja.no
bådåddjå.no
budejju.no
bokn.no
bremanger.no
bronnoy.no
brønnøy.no
bygland.no
bykle.no
barum.no
bærum.no
bo.telemark.no
bø.telemark.no
bo.nordland.no
bø.nordland.no
bievat.no
bievát.no
bomlo.no
bømlo.no
batsfjord.no
båtsfjord.no
bahcavuotna.no
báhcavuotna.no
dovre.no
drammen.no
drangedal.no
dyroy.no
dyrøy.no
donna.no
dønna.no
eid.no
eidfjord.no
eidsberg.no
eidskog.no
eidsvoll.no
eigersund.no
elverum.no
enebakk.no
engerdal.no
etne.no
etnedal.no
evenes.no
evenassi.no
evenášši.no
evje-og-hornnes.no
farsund.no
fauske.no
fuossko.no
fuoisku.no
fedje.no
fet.no
finnoy.no
finnøy.no
fitjar.no
fjaler.no
fjell.no
flakstad.no
flatanger.no
flekkefjord.no
flesberg.no
flora.no
fla.no
flå.no
folldal.no
forsand.no
fosnes.no
frei.no
frogn.no
froland.no
frosta.no
frana.no
fræna.no
froya.no
frøya.no
fusa.no
fyresdal.no
forde.no
førde.no
gamvik.no
gangaviika.no
gáŋgaviika.no
gaular.no
gausdal.no
gildeskal.no
gildeskål.no
giske.no
gjemnes.no
gjerdrum.no
gjerstad.no
gjesdal.no
gjovik.no
gjøvik.no
gloppen.no
gol.no
gran.no
grane.no
granvin.no
gratangen.no
grimstad.no
grong.no
kraanghke.no
kråanghke.no
grue.no
gulen.no
hadsel.no
halden.no
halsa.no
hamar.no
hamaroy.no
habmer.no
hábmer.no
hapmir.no
hápmir.no
hammerfest.no
hammarfeasta.no
hámmárfeasta.no
haram.no
hareid.no
harstad.no
hasvik.no
aknoluokta.no
ákŋoluokta.no
hattfjelldal.no
aarborte.no
haugesund.no
hemne.no
hemnes.no
hemsedal.no
heroy.more-og-romsdal.no
herøy.møre-og-romsdal.no
heroy.nordland.no
herøy.nordland.no
hitra.no
hjartdal.no
hjelmeland.no
hobol.no
hobøl.no
hof.no
hol.no
hole.no
holmestrand.no
holtalen.no
holtålen.no
hornindal.no
horten.no
hurdal.no
hurum.no
hvaler.no
hyllestad.no
hagebostad.no
hægebostad.no
hoyanger.no
høyanger.no
hoylandet.no
høylandet.no
ha.no
hå.no
ibestad.no
inderoy.no
inderøy.no
iveland.no
jevnaker.no
jondal.no
jolster.no
jølster.no
karasjok.no
karasjohka.no
kárášjohka.no
karlsoy.no
galsa.no
gálsá.no
karmoy.no
karmøy.no
kautokeino.no
guovdageaidnu.no
klepp.no
klabu.no
klæbu.no
kongsberg.no
kongsvinger.no
kragero.no
kragerø.no
kristiansand.no
kristiansund.no
krodsherad.no
krødsherad.no
kvalsund.no
rahkkeravju.no
ráhkkerávju.no
kvam.no
kvinesdal.no
kvinnherad.no
kviteseid.no
kvitsoy.no
kvitsøy.no
kvafjord.no
kvæfjord.no
giehtavuoatna.no
kvanangen.no
kvænangen.no
navuotna.no
návuotna.no
kafjord.no
kåfjord.no
gaivuotna.no
gáivuotna.no
larvik.no
lavangen.no
lavagis.no
loabat.no
loabát.no
lebesby.no
davvesiida.no
leikanger.no
leirfjord.no
leka.no
leksvik.no
lenvik.no
leangaviika.no
leaŋgaviika.no
lesja.no
levanger.no
lier.no
lierne.no
lillehammer.no
lillesand.no
lindesnes.no
lindas.no
lindås.no
lom.no
loppa.no
lahppi.no
láhppi.no
lund.no
lunner.no
luroy.no
lurøy.no
luster.no
lyngdal.no
lyngen.no
ivgu.no
lardal.no
lerdal.no
lærdal.no
lodingen.no
lødingen.no
lorenskog.no
lørenskog.no
loten.no
løten.no
malvik.no
masoy.no
måsøy.no
muosat.no
muosát.no
mandal.no
marker.no
marnardal.no
masfjorden.no
meland.no
meldal.no
melhus.no
meloy.no
meløy.no
meraker.no
meråker.no
moareke.no
moåreke.no
midsund.no
midtre-gauldal.no
modalen.no
modum.no
molde.no
moskenes.no
moss.no
mosvik.no
malselv.no
målselv.no
malatvuopmi.no
málatvuopmi.no
namdalseid.no
aejrie.no
namsos.no
namsskogan.no
naamesjevuemie.no
nååmesjevuemie.no
laakesvuemie.no
nannestad.no
narvik.no
narviika.no
naustdal.no
nedre-eiker.no
nes.akershus.no
nes.buskerud.no
nesna.no
nesodden.no
nesseby.no
unjarga.no
unjárga.no
nesset.no
nissedal.no
nittedal.no
nord-aurdal.no
nord-fron.no
nord-odal.no
norddal.no
nordkapp.no
davvenjarga.no
davvenjárga.no
nordre-land.no
nordreisa.no
raisa.no
ráisa.no
nore-og-uvdal.no
notodden.no
naroy.no
nærøy.no
notteroy.no
nøtterøy.no
odda.no
oksnes.no
øksnes.no
oppdal.no
oppegard.no
oppegård.no
orkdal.no
orland.no
ørland.no
orskog.no
ørskog.no
orsta.no
ørsta.no
os.hedmark.no
os.hordaland.no
osen.no
osteroy.no
osterøy.no
ostre-toten.no
østre-toten.no
overhalla.no
ovre-eiker.no
øvre-eiker.no
oyer.no
øyer.no
oygarden.no
øygarden.no
oystre-slidre.no
øystre-slidre.no
porsanger.no
porsangu.no
porsáŋgu.no
porsgrunn.no
radoy.no
radøy.no
rakkestad.no
rana.no
ruovat.no
randaberg.no
rauma.no
rendalen.no
rennebu.no
rennesoy.no
rennesøy.no
rindal.no
ringebu.no
ringerike.no
ringsaker.no
rissa.no
risor.no
risør.no
roan.no
rollag.no
rygge.no
ralingen.no
rælingen.no
rodoy.no
rødøy.no
romskog.no
rømskog.no
roros.no
røros.no
rost.no
røst.no
royken.no
røyken.no
royrvik.no
røyrvik.no
rade.no
råde.no
salangen.no
siellak.no
saltdal.no
salat.no
sálát.no
sálat.no
samnanger.no
sande.more-og-romsdal.no
sande.møre-og-romsdal.no
sande.vestfold.no
sandefjord.no
sandnes.no
sandoy.no
sandøy.no
sarpsborg.no
sauda.no
sauherad.no
sel.no
selbu.no
selje.no
seljord.no
sigdal.no
siljan.no
sirdal.no
skaun.no
skedsmo.no
ski.no
skien.no
skiptvet.no
skjervoy.no
skjervøy.no
skierva.no
skiervá.no
skjak.no
skjåk.no
skodje.no
skanland.no
skånland.no
skanit.no
skánit.no
smola.no
smøla.no
snillfjord.no
snasa.no
snåsa.no
snoasa.no
snaase.no
snåase.no
sogndal.no
sokndal.no
sola.no
solund.no
songdalen.no
sortland.no
spydeberg.no
stange.no
stavanger.no
steigen.no
steinkjer.no
stjordal.no
stjørdal.no
stokke.no
stor-elvdal.no
stord.no
stordal.no
storfjord.no
omasvuotna.no
strand.no
stranda.no
stryn.no
sula.no
suldal.no
sund.no
sunndal.no
surnadal.no
sveio.no
svelvik.no
sykkylven.no
sogne.no
søgne.no
somna.no
sømna.no
sondre-land.no
søndre-land.no
sor-aurdal.no
sør-aurdal.no
sor-fron.no
sør-fron.no
sor-odal.no
sør-odal.no
sor-varanger.no
sør-varanger.no
matta-varjjat.no
mátta-várjjat.no
sorfold.no
sørfold.no
sorreisa.no
sørreisa.no
sorum.no
sørum.no
tana.no
deatnu.no
time.no
tingvoll.no
tinn.no
tjeldsund.no
dielddanuorri.no
tjome.no
tjøme.no
tokke.no
tolga.no
torsken.no
tranoy.no
tranøy.no
tromso.no
tromsø.no
tromsa.no
romsa.no
trondheim.no
troandin.no
trysil.no
trana.no
træna.no
trogstad.no
trøgstad.no
tvedestrand.no
tydal.no
tynset.no
tysfjord.no
divtasvuodna.no
divttasvuotna.no
tysnes.no
tysvar.no
tysvær.no
tonsberg.no
tønsberg.no
ullensaker.no
ullensvang.no
ulvik.no
utsira.no
vadso.no
vadsø.no
cahcesuolo.no
čáhcesuolo.no
vaksdal.no
valle.no
vang.no
vanylven.no
vardo.no
vardø.no
varggat.no
várggát.no
vefsn.no
vaapste.no
vega.no
vegarshei.no
vegårshei.no
vennesla.no
verdal.no
verran.no
vestby.no
vestnes.no
vestre-slidre.no
vestre-toten.no
vestvagoy.no
vestvågøy.no
vevelstad.no
vik.no
vikna.no
vindafjord.no
volda.no
voss.no
varoy.no
værøy.no
vagan.no
vågan.no
voagat.no
vagsoy.no
vågsøy.no
vaga.no
vågå.no
valer.ostfold.no
våler.østfold.no
valer.hedmark.no
våler.hedmark.no
// np : http://www.mos.com.np/register.html
*.np
// nr : http://cenpac.net.nr/dns/index.html
// Confirmed by registry 2008-06-17
nr
biz.nr
info.nr
gov.nr
edu.nr
org.nr
net.nr
com.nr
// nu : http://en.wikipedia.org/wiki/.nu
nu
// nz : http://en.wikipedia.org/wiki/.nz
// Confirmed by registry 2014-05-19
nz
ac.nz
co.nz
cri.nz
geek.nz
gen.nz
govt.nz
health.nz
iwi.nz
kiwi.nz
maori.nz
mil.nz
māori.nz
net.nz
org.nz
parliament.nz
school.nz
// om : http://en.wikipedia.org/wiki/.om
om
co.om
com.om
edu.om
gov.om
med.om
museum.om
net.om
org.om
pro.om
// org : http://en.wikipedia.org/wiki/.org
org
// pa : http://www.nic.pa/
// Some additional second level "domains" resolve directly as hostnames, such as
// pannet.pa, so we add a rule for "pa".
pa
ac.pa
gob.pa
com.pa
org.pa
sld.pa
edu.pa
net.pa
ing.pa
abo.pa
med.pa
nom.pa
// pe : https://www.nic.pe/InformeFinalComision.pdf
pe
edu.pe
gob.pe
nom.pe
mil.pe
org.pe
com.pe
net.pe
// pf : http://www.gobin.info/domainname/formulaire-pf.pdf
pf
com.pf
org.pf
edu.pf
// pg : http://en.wikipedia.org/wiki/.pg
*.pg
// ph : http://www.domains.ph/FAQ2.asp
// Submitted by registry 2008-06-13
ph
com.ph
net.ph
org.ph
gov.ph
edu.ph
ngo.ph
mil.ph
i.ph
// pk : http://pk5.pknic.net.pk/pk5/msgNamepk.PK
pk
com.pk
net.pk
edu.pk
org.pk
fam.pk
biz.pk
web.pk
gov.pk
gob.pk
gok.pk
gon.pk
gop.pk
gos.pk
info.pk
// pl http://www.dns.pl/english/index.html
// confirmed on 26.09.2014 from Bogna Tchórzewska
pl
com.pl
net.pl
org.pl
info.pl
waw.pl
gov.pl
// pl functional domains (http://www.dns.pl/english/index.html)
aid.pl
agro.pl
atm.pl
auto.pl
biz.pl
edu.pl
gmina.pl
gsm.pl
mail.pl
miasta.pl
media.pl
mil.pl
nieruchomosci.pl
nom.pl
pc.pl
powiat.pl
priv.pl
realestate.pl
rel.pl
sex.pl
shop.pl
sklep.pl
sos.pl
szkola.pl
targi.pl
tm.pl
tourism.pl
travel.pl
turystyka.pl
// Government domains (administred by ippt.gov.pl)
uw.gov.pl
um.gov.pl
ug.gov.pl
upow.gov.pl
starostwo.gov.pl
so.gov.pl
sr.gov.pl
po.gov.pl
pa.gov.pl
// pl regional domains (http://www.dns.pl/english/index.html)
augustow.pl
babia-gora.pl
bedzin.pl
beskidy.pl
bialowieza.pl
bialystok.pl
bielawa.pl
bieszczady.pl
boleslawiec.pl
bydgoszcz.pl
bytom.pl
cieszyn.pl
czeladz.pl
czest.pl
dlugoleka.pl
elblag.pl
elk.pl
glogow.pl
gniezno.pl
gorlice.pl
grajewo.pl
ilawa.pl
jaworzno.pl
jelenia-gora.pl
jgora.pl
kalisz.pl
kazimierz-dolny.pl
karpacz.pl
kartuzy.pl
kaszuby.pl
katowice.pl
kepno.pl
ketrzyn.pl
klodzko.pl
kobierzyce.pl
kolobrzeg.pl
konin.pl
konskowola.pl
kutno.pl
lapy.pl
lebork.pl
legnica.pl
lezajsk.pl
limanowa.pl
lomza.pl
lowicz.pl
lubin.pl
lukow.pl
malbork.pl
malopolska.pl
mazowsze.pl
mazury.pl
mielec.pl
mielno.pl
mragowo.pl
naklo.pl
nowaruda.pl
nysa.pl
olawa.pl
olecko.pl
olkusz.pl
olsztyn.pl
opoczno.pl
opole.pl
ostroda.pl
ostroleka.pl
ostrowiec.pl
ostrowwlkp.pl
pila.pl
pisz.pl
podhale.pl
podlasie.pl
polkowice.pl
pomorze.pl
pomorskie.pl
prochowice.pl
pruszkow.pl
przeworsk.pl
pulawy.pl
radom.pl
rawa-maz.pl
rybnik.pl
rzeszow.pl
sanok.pl
sejny.pl
slask.pl
slupsk.pl
sosnowiec.pl
stalowa-wola.pl
skoczow.pl
starachowice.pl
stargard.pl
suwalki.pl
swidnica.pl
swiebodzin.pl
swinoujscie.pl
szczecin.pl
szczytno.pl
tarnobrzeg.pl
tgory.pl
turek.pl
tychy.pl
ustka.pl
walbrzych.pl
warmia.pl
warszawa.pl
wegrow.pl
wielun.pl
wlocl.pl
wloclawek.pl
wodzislaw.pl
wolomin.pl
wroclaw.pl
zachpomor.pl
zagan.pl
zarow.pl
zgora.pl
zgorzelec.pl
// pm : http://www.afnic.fr/medias/documents/AFNIC-naming-policy2012.pdf
pm
// pn : http://www.government.pn/PnRegistry/policies.htm
pn
gov.pn
co.pn
org.pn
edu.pn
net.pn
// post : http://en.wikipedia.org/wiki/.post
post
// pr : http://www.nic.pr/index.asp?f=1
pr
com.pr
net.pr
org.pr
gov.pr
edu.pr
isla.pr
pro.pr
biz.pr
info.pr
name.pr
// these aren't mentioned on nic.pr, but on http://en.wikipedia.org/wiki/.pr
est.pr
prof.pr
ac.pr
// pro : http://www.nic.pro/support_faq.htm
pro
aca.pro
bar.pro
cpa.pro
jur.pro
law.pro
med.pro
eng.pro
// ps : http://en.wikipedia.org/wiki/.ps
// http://www.nic.ps/registration/policy.html#reg
ps
edu.ps
gov.ps
sec.ps
plo.ps
com.ps
org.ps
net.ps
// pt : http://online.dns.pt/dns/start_dns
pt
net.pt
gov.pt
org.pt
edu.pt
int.pt
publ.pt
com.pt
nome.pt
// pw : http://en.wikipedia.org/wiki/.pw
pw
co.pw
ne.pw
or.pw
ed.pw
go.pw
belau.pw
// py : http://www.nic.py/pautas.html#seccion_9
// Confirmed by registry 2012-10-03
py
com.py
coop.py
edu.py
gov.py
mil.py
net.py
org.py
// qa : http://domains.qa/en/
qa
com.qa
edu.qa
gov.qa
mil.qa
name.qa
net.qa
org.qa
sch.qa
// re : http://www.afnic.re/obtenir/chartes/nommage-re/annexe-descriptifs
re
com.re
asso.re
nom.re
// ro : http://www.rotld.ro/
ro
com.ro
org.ro
tm.ro
nt.ro
nom.ro
info.ro
rec.ro
arts.ro
firm.ro
store.ro
www.ro
// rs : http://en.wikipedia.org/wiki/.rs
rs
co.rs
org.rs
edu.rs
ac.rs
gov.rs
in.rs
// ru : http://www.cctld.ru/ru/docs/aktiv_8.php
// Industry domains
ru
ac.ru
com.ru
edu.ru
int.ru
net.ru
org.ru
pp.ru
// Geographical domains
adygeya.ru
altai.ru
amur.ru
arkhangelsk.ru
astrakhan.ru
bashkiria.ru
belgorod.ru
bir.ru
bryansk.ru
buryatia.ru
cbg.ru
chel.ru
chelyabinsk.ru
chita.ru
chukotka.ru
chuvashia.ru
dagestan.ru
dudinka.ru
e-burg.ru
grozny.ru
irkutsk.ru
ivanovo.ru
izhevsk.ru
jar.ru
joshkar-ola.ru
kalmykia.ru
kaluga.ru
kamchatka.ru
karelia.ru
kazan.ru
kchr.ru
kemerovo.ru
khabarovsk.ru
khakassia.ru
khv.ru
kirov.ru
koenig.ru
komi.ru
kostroma.ru
krasnoyarsk.ru
kuban.ru
kurgan.ru
kursk.ru
lipetsk.ru
magadan.ru
mari.ru
mari-el.ru
marine.ru
mordovia.ru
// mosreg.ru Bug 1090800 - removed at request of Aleksey Konstantinov
msk.ru
murmansk.ru
nalchik.ru
nnov.ru
nov.ru
novosibirsk.ru
nsk.ru
omsk.ru
orenburg.ru
oryol.ru
palana.ru
penza.ru
perm.ru
ptz.ru
rnd.ru
ryazan.ru
sakhalin.ru
samara.ru
saratov.ru
simbirsk.ru
smolensk.ru
spb.ru
stavropol.ru
stv.ru
surgut.ru
tambov.ru
tatarstan.ru
tom.ru
tomsk.ru
tsaritsyn.ru
tsk.ru
tula.ru
tuva.ru
tver.ru
tyumen.ru
udm.ru
udmurtia.ru
ulan-ude.ru
vladikavkaz.ru
vladimir.ru
vladivostok.ru
volgograd.ru
vologda.ru
voronezh.ru
vrn.ru
vyatka.ru
yakutia.ru
yamal.ru
yaroslavl.ru
yekaterinburg.ru
yuzhno-sakhalinsk.ru
// More geographical domains
amursk.ru
baikal.ru
cmw.ru
fareast.ru
jamal.ru
kms.ru
k-uralsk.ru
kustanai.ru
kuzbass.ru
magnitka.ru
mytis.ru
nakhodka.ru
nkz.ru
norilsk.ru
oskol.ru
pyatigorsk.ru
rubtsovsk.ru
snz.ru
syzran.ru
vdonsk.ru
zgrad.ru
// State domains
gov.ru
mil.ru
// Technical domains
test.ru
// rw : http://www.nic.rw/cgi-bin/policy.pl
rw
gov.rw
net.rw
edu.rw
ac.rw
com.rw
co.rw
int.rw
mil.rw
gouv.rw
// sa : http://www.nic.net.sa/
sa
com.sa
net.sa
org.sa
gov.sa
med.sa
pub.sa
edu.sa
sch.sa
// sb : http://www.sbnic.net.sb/
// Submitted by registry 2008-06-08
sb
com.sb
edu.sb
gov.sb
net.sb
org.sb
// sc : http://www.nic.sc/
sc
com.sc
gov.sc
net.sc
org.sc
edu.sc
// sd : http://www.isoc.sd/sudanic.isoc.sd/billing_pricing.htm
// Submitted by registry 2008-06-17
sd
com.sd
net.sd
org.sd
edu.sd
med.sd
tv.sd
gov.sd
info.sd
// se : http://en.wikipedia.org/wiki/.se
// Submitted by registry 2014-03-18
se
a.se
ac.se
b.se
bd.se
brand.se
c.se
d.se
e.se
f.se
fh.se
fhsk.se
fhv.se
g.se
h.se
i.se
k.se
komforb.se
kommunalforbund.se
komvux.se
l.se
lanbib.se
m.se
n.se
naturbruksgymn.se
o.se
org.se
p.se
parti.se
pp.se
press.se
r.se
s.se
t.se
tm.se
u.se
w.se
x.se
y.se
z.se
// sg : http://www.nic.net.sg/page/registration-policies-procedures-and-guidelines
sg
com.sg
net.sg
org.sg
gov.sg
edu.sg
per.sg
// sh : http://www.nic.sh/registrar.html
sh
com.sh
net.sh
gov.sh
org.sh
mil.sh
// si : http://en.wikipedia.org/wiki/.si
si
// sj : No registrations at this time.
// Submitted by registry 2008-06-16
sj
// sk : http://en.wikipedia.org/wiki/.sk
// list of 2nd level domains ?
sk
// sl : http://www.nic.sl
// Submitted by registry 2008-06-12
sl
com.sl
net.sl
edu.sl
gov.sl
org.sl
// sm : http://en.wikipedia.org/wiki/.sm
sm
// sn : http://en.wikipedia.org/wiki/.sn
sn
art.sn
com.sn
edu.sn
gouv.sn
org.sn
perso.sn
univ.sn
// so : http://www.soregistry.com/
so
com.so
net.so
org.so
// sr : http://en.wikipedia.org/wiki/.sr
sr
// st : http://www.nic.st/html/policyrules/
st
co.st
com.st
consulado.st
edu.st
embaixada.st
gov.st
mil.st
net.st
org.st
principe.st
saotome.st
store.st
// su : http://en.wikipedia.org/wiki/.su
su
adygeya.su
arkhangelsk.su
balashov.su
bashkiria.su
bryansk.su
dagestan.su
grozny.su
ivanovo.su
kalmykia.su
kaluga.su
karelia.su
khakassia.su
krasnodar.su
kurgan.su
lenug.su
mordovia.su
msk.su
murmansk.su
nalchik.su
nov.su
obninsk.su
penza.su
pokrovsk.su
sochi.su
spb.su
togliatti.su
troitsk.su
tula.su
tuva.su
vladikavkaz.su
vladimir.su
vologda.su
// sv : http://www.svnet.org.sv/niveldos.pdf
sv
com.sv
edu.sv
gob.sv
org.sv
red.sv
// sx : http://en.wikipedia.org/wiki/.sx
// Confirmed by registry 2012-05-31
sx
gov.sx
// sy : http://en.wikipedia.org/wiki/.sy
// see also: http://www.gobin.info/domainname/sy.doc
sy
edu.sy
gov.sy
net.sy
mil.sy
com.sy
org.sy
// sz : http://en.wikipedia.org/wiki/.sz
// http://www.sispa.org.sz/
sz
co.sz
ac.sz
org.sz
// tc : http://en.wikipedia.org/wiki/.tc
tc
// td : http://en.wikipedia.org/wiki/.td
td
// tel: http://en.wikipedia.org/wiki/.tel
// http://www.telnic.org/
tel
// tf : http://en.wikipedia.org/wiki/.tf
tf
// tg : http://en.wikipedia.org/wiki/.tg
// http://www.nic.tg/
tg
// th : http://en.wikipedia.org/wiki/.th
// Submitted by registry 2008-06-17
th
ac.th
co.th
go.th
in.th
mi.th
net.th
or.th
// tj : http://www.nic.tj/policy.html
tj
ac.tj
biz.tj
co.tj
com.tj
edu.tj
go.tj
gov.tj
int.tj
mil.tj
name.tj
net.tj
nic.tj
org.tj
test.tj
web.tj
// tk : http://en.wikipedia.org/wiki/.tk
tk
// tl : http://en.wikipedia.org/wiki/.tl
tl
gov.tl
// tm : http://www.nic.tm/local.html
tm
com.tm
co.tm
org.tm
net.tm
nom.tm
gov.tm
mil.tm
edu.tm
// tn : http://en.wikipedia.org/wiki/.tn
// http://whois.ati.tn/
tn
com.tn
ens.tn
fin.tn
gov.tn
ind.tn
intl.tn
nat.tn
net.tn
org.tn
info.tn
perso.tn
tourism.tn
edunet.tn
rnrt.tn
rns.tn
rnu.tn
mincom.tn
agrinet.tn
defense.tn
turen.tn
// to : http://en.wikipedia.org/wiki/.to
// Submitted by registry 2008-06-17
to
com.to
gov.to
net.to
org.to
edu.to
mil.to
// tp : No registrations at this time.
// Submitted by Ryan Sleevi 2014-01-03
tp
// subTLDs: https://www.nic.tr/forms/eng/policies.pdf
// and: https://www.nic.tr/forms/politikalar.pdf
// Submitted by 2014-07-19
tr
com.tr
info.tr
biz.tr
net.tr
org.tr
web.tr
gen.tr
tv.tr
av.tr
dr.tr
bbs.tr
name.tr
tel.tr
gov.tr
bel.tr
pol.tr
mil.tr
k12.tr
edu.tr
kep.tr
// Used by Northern Cyprus
nc.tr
// Used by government agencies of Northern Cyprus
gov.nc.tr
// travel : http://en.wikipedia.org/wiki/.travel
travel
// tt : http://www.nic.tt/
tt
co.tt
com.tt
org.tt
net.tt
biz.tt
info.tt
pro.tt
int.tt
coop.tt
jobs.tt
mobi.tt
travel.tt
museum.tt
aero.tt
name.tt
gov.tt
edu.tt
// tv : http://en.wikipedia.org/wiki/.tv
// Not listing any 2LDs as reserved since none seem to exist in practice,
// Wikipedia notwithstanding.
tv
// tw : http://en.wikipedia.org/wiki/.tw
tw
edu.tw
gov.tw
mil.tw
com.tw
net.tw
org.tw
idv.tw
game.tw
ebiz.tw
club.tw
網路.tw
組織.tw
商業.tw
// tz : http://www.tznic.or.tz/index.php/domains
// Confirmed by registry 2013-01-22
tz
ac.tz
co.tz
go.tz
hotel.tz
info.tz
me.tz
mil.tz
mobi.tz
ne.tz
or.tz
sc.tz
tv.tz
// ua : https://hostmaster.ua/policy/?ua
// Submitted by registry 2012-04-27
ua
// ua 2LD
com.ua
edu.ua
gov.ua
in.ua
net.ua
org.ua
// ua geographic names
// https://hostmaster.ua/2ld/
cherkassy.ua
cherkasy.ua
chernigov.ua
chernihiv.ua
chernivtsi.ua
chernovtsy.ua
ck.ua
cn.ua
cr.ua
crimea.ua
cv.ua
dn.ua
dnepropetrovsk.ua
dnipropetrovsk.ua
dominic.ua
donetsk.ua
dp.ua
if.ua
ivano-frankivsk.ua
kh.ua
kharkiv.ua
kharkov.ua
kherson.ua
khmelnitskiy.ua
khmelnytskyi.ua
kiev.ua
kirovograd.ua
km.ua
kr.ua
krym.ua
ks.ua
kv.ua
kyiv.ua
lg.ua
lt.ua
lugansk.ua
lutsk.ua
lv.ua
lviv.ua
mk.ua
mykolaiv.ua
nikolaev.ua
od.ua
odesa.ua
odessa.ua
pl.ua
poltava.ua
rivne.ua
rovno.ua
rv.ua
sb.ua
sebastopol.ua
sevastopol.ua
sm.ua
sumy.ua
te.ua
ternopil.ua
uz.ua
uzhgorod.ua
vinnica.ua
vinnytsia.ua
vn.ua
volyn.ua
yalta.ua
zaporizhzhe.ua
zaporizhzhia.ua
zhitomir.ua
zhytomyr.ua
zp.ua
zt.ua
// Private registries in .ua
co.ua
pp.ua
// ug : https://www.registry.co.ug/
ug
co.ug
or.ug
ac.ug
sc.ug
go.ug
ne.ug
com.ug
org.ug
// uk : http://en.wikipedia.org/wiki/.uk
// Submitted by registry
uk
ac.uk
co.uk
gov.uk
ltd.uk
me.uk
net.uk
nhs.uk
org.uk
plc.uk
police.uk
*.sch.uk
// us : http://en.wikipedia.org/wiki/.us
us
dni.us
fed.us
isa.us
kids.us
nsn.us
// us geographic names
ak.us
al.us
ar.us
as.us
az.us
ca.us
co.us
ct.us
dc.us
de.us
fl.us
ga.us
gu.us
hi.us
ia.us
id.us
il.us
in.us
ks.us
ky.us
la.us
ma.us
md.us
me.us
mi.us
mn.us
mo.us
ms.us
mt.us
nc.us
nd.us
ne.us
nh.us
nj.us
nm.us
nv.us
ny.us
oh.us
ok.us
or.us
pa.us
pr.us
ri.us
sc.us
sd.us
tn.us
tx.us
ut.us
vi.us
vt.us
va.us
wa.us
wi.us
wv.us
wy.us
// The registrar notes several more specific domains available in each state,
// such as state.*.us, dst.*.us, etc., but resolution of these is somewhat
// haphazard; in some states these domains resolve as addresses, while in others
// only subdomains are available, or even nothing at all. We include the
// most common ones where it's clear that different sites are different
// entities.
k12.ak.us
k12.al.us
k12.ar.us
k12.as.us
k12.az.us
k12.ca.us
k12.co.us
k12.ct.us
k12.dc.us
k12.de.us
k12.fl.us
k12.ga.us
k12.gu.us
// k12.hi.us Bug 614565 - Hawaii has a state-wide DOE login
k12.ia.us
k12.id.us
k12.il.us
k12.in.us
k12.ks.us
k12.ky.us
k12.la.us
k12.ma.us
k12.md.us
k12.me.us
k12.mi.us
k12.mn.us
k12.mo.us
k12.ms.us
k12.mt.us
k12.nc.us
// k12.nd.us Bug 1028347 - Removed at request of Travis Rosso
k12.ne.us
k12.nh.us
k12.nj.us
k12.nm.us
k12.nv.us
k12.ny.us
k12.oh.us
k12.ok.us
k12.or.us
k12.pa.us
k12.pr.us
k12.ri.us
k12.sc.us
// k12.sd.us Bug 934131 - Removed at request of James Booze
k12.tn.us
k12.tx.us
k12.ut.us
k12.vi.us
k12.vt.us
k12.va.us
k12.wa.us
k12.wi.us
// k12.wv.us Bug 947705 - Removed at request of Verne Britton
k12.wy.us
cc.ak.us
cc.al.us
cc.ar.us
cc.as.us
cc.az.us
cc.ca.us
cc.co.us
cc.ct.us
cc.dc.us
cc.de.us
cc.fl.us
cc.ga.us
cc.gu.us
cc.hi.us
cc.ia.us
cc.id.us
cc.il.us
cc.in.us
cc.ks.us
cc.ky.us
cc.la.us
cc.ma.us
cc.md.us
cc.me.us
cc.mi.us
cc.mn.us
cc.mo.us
cc.ms.us
cc.mt.us
cc.nc.us
cc.nd.us
cc.ne.us
cc.nh.us
cc.nj.us
cc.nm.us
cc.nv.us
cc.ny.us
cc.oh.us
cc.ok.us
cc.or.us
cc.pa.us
cc.pr.us
cc.ri.us
cc.sc.us
cc.sd.us
cc.tn.us
cc.tx.us
cc.ut.us
cc.vi.us
cc.vt.us
cc.va.us
cc.wa.us
cc.wi.us
cc.wv.us
cc.wy.us
lib.ak.us
lib.al.us
lib.ar.us
lib.as.us
lib.az.us
lib.ca.us
lib.co.us
lib.ct.us
lib.dc.us
lib.de.us
lib.fl.us
lib.ga.us
lib.gu.us
lib.hi.us
lib.ia.us
lib.id.us
lib.il.us
lib.in.us
lib.ks.us
lib.ky.us
lib.la.us
lib.ma.us
lib.md.us
lib.me.us
lib.mi.us
lib.mn.us
lib.mo.us
lib.ms.us
lib.mt.us
lib.nc.us
lib.nd.us
lib.ne.us
lib.nh.us
lib.nj.us
lib.nm.us
lib.nv.us
lib.ny.us
lib.oh.us
lib.ok.us
lib.or.us
lib.pa.us
lib.pr.us
lib.ri.us
lib.sc.us
lib.sd.us
lib.tn.us
lib.tx.us
lib.ut.us
lib.vi.us
lib.vt.us
lib.va.us
lib.wa.us
lib.wi.us
// lib.wv.us Bug 941670 - Removed at request of Larry W Arnold
lib.wy.us
// k12.ma.us contains school districts in Massachusetts. The 4LDs are
// managed indepedently except for private (PVT), charter (CHTR) and
// parochial (PAROCH) schools. Those are delegated dorectly to the
// 5LD operators.
pvt.k12.ma.us
chtr.k12.ma.us
paroch.k12.ma.us
// uy : http://www.nic.org.uy/
uy
com.uy
edu.uy
gub.uy
mil.uy
net.uy
org.uy
// uz : http://www.reg.uz/
uz
co.uz
com.uz
net.uz
org.uz
// va : http://en.wikipedia.org/wiki/.va
va
// vc : http://en.wikipedia.org/wiki/.vc
// Submitted by registry 2008-06-13
vc
com.vc
net.vc
org.vc
gov.vc
mil.vc
edu.vc
// ve : https://registro.nic.ve/
// Confirmed by registry 2012-10-04
// Updated 2014-05-20 - Bug 940478
ve
arts.ve
co.ve
com.ve
e12.ve
edu.ve
firm.ve
gob.ve
gov.ve
info.ve
int.ve
mil.ve
net.ve
org.ve
rec.ve
store.ve
tec.ve
web.ve
// vg : http://en.wikipedia.org/wiki/.vg
vg
// vi : http://www.nic.vi/newdomainform.htm
// http://www.nic.vi/Domain_Rules/body_domain_rules.html indicates some other
// TLDs are "reserved", such as edu.vi and gov.vi, but doesn't actually say they
// are available for registration (which they do not seem to be).
vi
co.vi
com.vi
k12.vi
net.vi
org.vi
// vn : https://www.dot.vn/vnnic/vnnic/domainregistration.jsp
vn
com.vn
net.vn
org.vn
edu.vn
gov.vn
int.vn
ac.vn
biz.vn
info.vn
name.vn
pro.vn
health.vn
// vu : http://en.wikipedia.org/wiki/.vu
// http://www.vunic.vu/
vu
com.vu
edu.vu
net.vu
org.vu
// wf : http://www.afnic.fr/medias/documents/AFNIC-naming-policy2012.pdf
wf
// ws : http://en.wikipedia.org/wiki/.ws
// http://samoanic.ws/index.dhtml
ws
com.ws
net.ws
org.ws
gov.ws
edu.ws
// yt : http://www.afnic.fr/medias/documents/AFNIC-naming-policy2012.pdf
yt
// IDN ccTLDs
// Please sort by ISO 3166 ccTLD, then punicode string
// when submitting patches and follow this format:
// ("" ) :
// [optional sponsoring org]
//
// xn--mgbaam7a8h ("Emerat" Arabic) : AE
// http://nic.ae/english/arabicdomain/rules.jsp
امارات
// xn--54b7fta0cc ("Bangla" Bangla) : BD
বাংলা
// xn--fiqs8s ("China" Chinese-Han-Simplified <.Zhongguo>) : CN
// CNNIC
// http://cnnic.cn/html/Dir/2005/10/11/3218.htm
中国
// xn--fiqz9s ("China" Chinese-Han-Traditional <.Zhongguo>) : CN
// CNNIC
// http://cnnic.cn/html/Dir/2005/10/11/3218.htm
中國
// xn--lgbbat1ad8j ("Algeria / Al Jazair" Arabic) : DZ
الجزائر
// xn--wgbh1c ("Egypt" Arabic .masr) : EG
// http://www.dotmasr.eg/
مصر
// xn--node ("ge" Georgian (Mkhedruli)) : GE
გე
// xn--j6w193g ("Hong Kong" Chinese-Han) : HK
// https://www2.hkirc.hk/register/rules.jsp
香港
// xn--h2brj9c ("Bharat" Devanagari) : IN
// India
भारत
// xn--mgbbh1a71e ("Bharat" Arabic) : IN
// India
بھارت
// xn--fpcrj9c3d ("Bharat" Telugu) : IN
// India
భారత్
// xn--gecrj9c ("Bharat" Gujarati) : IN
// India
ભારત
// xn--s9brj9c ("Bharat" Gurmukhi) : IN
// India
ਭਾਰਤ
// xn--45brj9c ("Bharat" Bengali) : IN
// India
ভারত
// xn--xkc2dl3a5ee0h ("India" Tamil) : IN
// India
இந்தியா
// xn--mgba3a4f16a ("Iran" Persian) : IR
ایران
// xn--mgba3a4fra ("Iran" Arabic) : IR
ايران
// xn--mgbayh7gpa ("al-Ordon" Arabic) : JO
// National Information Technology Center (NITC)
// Royal Scientific Society, Al-Jubeiha
الاردن
// xn--3e0b707e ("Republic of Korea" Hangul) : KR
한국
// xn--80ao21a ("Kaz" Kazakh) : KZ
қаз
// xn--fzc2c9e2c ("Lanka" Sinhalese-Sinhala) : LK
// http://nic.lk
ලංකා
// xn--xkc2al3hye2a ("Ilangai" Tamil) : LK
// http://nic.lk
இலங்கை
// xn--mgbc0a9azcg ("Morocco / al-Maghrib" Arabic) : MA
المغرب
// xn--l1acc ("mon" Mongolian) : MN
мон
// xn--mgbx4cd0ab ("Malaysia" Malay) : MY
مليسيا
// xn--mgb9awbf ("Oman" Arabic) : OM
عمان
// xn--ygbi2ammx ("Falasteen" Arabic) : PS
// The Palestinian National Internet Naming Authority (PNINA)
// http://www.pnina.ps
فلسطين
// xn--90a3ac ("srb" Cyrillic) : RS
// http://www.rnids.rs/en/the-.срб-domain
срб
пр.срб
орг.срб
обр.срб
од.срб
упр.срб
ак.срб
// xn--p1ai ("rf" Russian-Cyrillic) : RU
// http://www.cctld.ru/en/docs/rulesrf.php
рф
// xn--wgbl6a ("Qatar" Arabic) : QA
// http://www.ict.gov.qa/
قطر
// xn--mgberp4a5d4ar ("AlSaudiah" Arabic) : SA
// http://www.nic.net.sa/
السعودية
// xn--mgberp4a5d4a87g ("AlSaudiah" Arabic) variant : SA
السعودیة
// xn--mgbqly7c0a67fbc ("AlSaudiah" Arabic) variant : SA
السعودیۃ
// xn--mgbqly7cvafr ("AlSaudiah" Arabic) variant : SA
السعوديه
// xn--ogbpf8fl ("Syria" Arabic) : SY
سورية
// xn--mgbtf8fl ("Syria" Arabic) variant : SY
سوريا
// xn--yfro4i67o Singapore ("Singapore" Chinese-Han) : SG
新加坡
// xn--clchc0ea0b2g2a9gcd ("Singapore" Tamil) : SG
சிங்கப்பூர்
// xn--o3cw4h ("Thai" Thai) : TH
// http://www.thnic.co.th
ไทย
// xn--pgbs0dh ("Tunis") : TN
// http://nic.tn
تونس
// xn--kpry57d ("Taiwan" Chinese-Han-Traditional) : TW
// http://www.twnic.net/english/dn/dn_07a.htm
台灣
// xn--kprw13d ("Taiwan" Chinese-Han-Simplified) : TW
// http://www.twnic.net/english/dn/dn_07a.htm
台湾
// xn--nnx388a ("Taiwan") variant : TW
臺灣
// xn--j1amh ("ukr" Cyrillic) : UA
укр
// xn--mgb2ddes ("AlYemen" Arabic) : YE
اليمن
// xxx : http://icmregistry.com
xxx
// ye : http://www.y.net.ye/services/domain_name.htm
*.ye
// za : http://www.zadna.org.za/slds.html
*.za
// zm : http://en.wikipedia.org/wiki/.zm
*.zm
// zw : http://en.wikipedia.org/wiki/.zw
*.zw
// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2015-01-27T00:02:07Z
// abb : 2014-10-24 ABB Ltd
abb
// abbott : 2014-07-24 Abbott Laboratories, Inc.
abbott
// abogado : 2014-04-24 Top Level Domain Holdings Limited
abogado
// academy : 2013-11-07 Half Oaks, LLC
academy
// accenture : 2014-08-15 Accenture plc
accenture
// accountant : 2014-11-20 dot Accountant Limited
accountant
// accountants : 2014-03-20 Knob Town, LLC
accountants
// aco : 2015-01-08 ACO Severin Ahlmann GmbH & Co. KG
aco
// active : 2014-05-01 The Active Network, Inc
active
// actor : 2013-12-12 United TLD Holdco Ltd.
actor
// ads : 2014-12-04 Charleston Road Registry Inc.
ads
// adult : 2014-10-16 ICM Registry AD LLC
adult
// afl : 2014-10-02 Australian Football League
afl
// africa : 2014-03-24 ZA Central Registry NPC trading as Registry.Africa
africa
// agency : 2013-11-14 Steel Falls, LLC
agency
// aig : 2014-12-18 American International Group, Inc.
aig
// airforce : 2014-03-06 United TLD Holdco Ltd.
airforce
// airtel : 2014-10-24 Bharti Airtel Limited
airtel
// alibaba : 2015-01-15 Alibaba Group Holding Limited
alibaba
// alipay : 2015-01-15 Alibaba Group Holding Limited
alipay
// allfinanz : 2014-07-03 Allfinanz Deutsche Vermögensberatung Aktiengesellschaft
allfinanz
// alsace : 2014-07-02 REGION D ALSACE
alsace
// amsterdam : 2014-07-24 Gemeente Amsterdam
amsterdam
// analytics : 2014-12-18 Campus IP LLC
analytics
// android : 2014-08-07 Charleston Road Registry Inc.
android
// anquan : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD.
anquan
// apartments : 2014-12-11 June Maple, LLC
apartments
// aquarelle : 2014-07-24 Aquarelle.com
aquarelle
// aramco : 2014-11-20 Aramco Services Company
aramco
// archi : 2014-02-06 STARTING DOT LIMITED
archi
// army : 2014-03-06 United TLD Holdco Ltd.
army
// arte : 2014-12-11 Association Relative à la Télévision Européenne G.E.I.E.
arte
// associates : 2014-03-06 Baxter Hill, LLC
associates
// attorney : 2014-03-20
attorney
// auction : 2014-03-20
auction
// audio : 2014-03-20 Uniregistry, Corp.
audio
// author : 2014-12-18 Amazon EU S.à r.l.
author
// auto : 2014-11-13 Uniregistry, Corp.
auto
// autos : 2014-01-09 DERAutos, LLC
autos
// avianca : 2015-01-08 Aerovias del Continente Americano S.A. Avianca
avianca
// axa : 2013-12-19 AXA SA
axa
// azure : 2014-12-18 Microsoft Corporation
azure
// baidu : 2015-01-08 Baidu, Inc.
baidu
// band : 2014-06-12
band
// bank : 2014-09-25 fTLD Registry Services LLC
bank
// bar : 2013-12-12 Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable
bar
// barcelona : 2014-07-24 Municipi de Barcelona
barcelona
// barclaycard : 2014-11-20 Barclays Bank PLC
barclaycard
// barclays : 2014-11-20 Barclays Bank PLC
barclays
// bargains : 2013-11-14 Half Hallow, LLC
bargains
// bauhaus : 2014-04-17 Werkhaus GmbH
bauhaus
// bayern : 2014-01-23 Bayern Connect GmbH
bayern
// bbc : 2014-12-18 British Broadcasting Corporation
bbc
// bbva : 2014-10-02 BANCO BILBAO VIZCAYA ARGENTARIA, S.A.
bbva
// bcn : 2014-07-24 Municipi de Barcelona
bcn
// beer : 2014-01-09 Top Level Domain Holdings Limited
beer
// bentley : 2014-12-18 Bentley Motors Limited
bentley
// berlin : 2013-10-31 dotBERLIN GmbH & Co. KG
berlin
// best : 2013-12-19 BestTLD Pty Ltd
best
// bharti : 2014-01-09 Bharti Enterprises (Holding) Private Limited
bharti
// bible : 2014-06-19 American Bible Society
bible
// bid : 2013-12-19 dot Bid Limited
bid
// bike : 2013-08-27 Grand Hollow, LLC
bike
// bing : 2014-12-18 Microsoft Corporation
bing
// bingo : 2014-12-04 Sand Cedar, LLC
bingo
// bio : 2014-03-06 STARTING DOT LIMITED
bio
// black : 2014-01-16 Afilias Limited
black
// blackfriday : 2014-01-16 Uniregistry, Corp.
blackfriday
// bloomberg : 2014-07-17 Bloomberg IP Holdings LLC
bloomberg
// blue : 2013-11-07 Afilias Limited
blue
// bms : 2014-10-30 Bristol-Myers Squibb Company
bms
// bmw : 2014-01-09 Bayerische Motoren Werke Aktiengesellschaft
bmw
// bnl : 2014-07-24 Banca Nazionale del Lavoro
bnl
// bnpparibas : 2014-05-29 BNP Paribas
bnpparibas
// boats : 2014-12-04 DERBoats, LLC
boats
// bom : 2014-10-16 Núcleo de Informação e Coordenação do Ponto BR - NIC.br
bom
// bond : 2014-06-05 Bond University Limited
bond
// boo : 2014-01-30 Charleston Road Registry Inc.
boo
// boots : 2015-01-08 THE BOOTS COMPANY PLC
boots
// bot : 2014-12-18 Amazon EU S.à r.l.
bot
// boutique : 2013-11-14 Over Galley, LLC
boutique
// bradesco : 2014-12-18 Banco Bradesco S.A.
bradesco
// bridgestone : 2014-12-18 Bridgestone Corporation
bridgestone
// broadway : 2014-12-22 Celebrate Broadway, Inc.
broadway
// broker : 2014-12-11 IG Group Holdings PLC
broker
// brussels : 2014-02-06 DNS.be vzw
brussels
// budapest : 2013-11-21 Top Level Domain Holdings Limited
budapest
// build : 2013-11-07 Plan Bee LLC
build
// builders : 2013-11-07 Atomic Madison, LLC
builders
// business : 2013-11-07 Spring Cross, LLC
business
// buy : 2014-12-18 Amazon EU S.à r.l.
buy
// buzz : 2013-10-02 DOTSTRATEGY CO.
buzz
// bzh : 2014-02-27 Association www.bzh
bzh
// cab : 2013-10-24 Half Sunset, LLC
cab
// cal : 2014-07-24 Charleston Road Registry Inc.
cal
// call : 2014-12-18 Amazon EU S.à r.l.
call
// camera : 2013-08-27 Atomic Maple, LLC
camera
// camp : 2013-11-07 Delta Dynamite, LLC
camp
// cancerresearch : 2014-05-15 Australian Cancer Research Foundation
cancerresearch
// canon : 2014-09-12 Canon Inc.
canon
// capetown : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry
capetown
// capital : 2014-03-06 Delta Mill, LLC
capital
// car : 2015-01-22 Charleston Road Registry Inc.
car
// caravan : 2013-12-12 Caravan International, Inc.
caravan
// cards : 2013-12-05 Foggy Hollow, LLC
cards
// care : 2014-03-06 Goose Cross
care
// career : 2013-10-09 dotCareer LLC
career
// careers : 2013-10-02 Wild Corner, LLC
careers
// cars : 2014-11-13 Uniregistry, Corp.
cars
// cartier : 2014-06-23 Richemont DNS Inc.
cartier
// casa : 2013-11-21 Top Level Domain Holdings Limited
casa
// cash : 2014-03-06 Delta Lake, LLC
cash
// casino : 2014-12-18 Binky Sky, LLC
casino
// catering : 2013-12-05 New Falls. LLC
catering
// cba : 2014-06-26 COMMONWEALTH BANK OF AUSTRALIA
cba
// cbn : 2014-08-22 The Christian Broadcasting Network, Inc.
cbn
// center : 2013-11-07 Tin Mill, LLC
center
// ceo : 2013-11-07 CEOTLD Pty Ltd
ceo
// cern : 2014-06-05 European Organization for Nuclear Research (\
cern
// cfa : 2014-08-28 CFA Institute
cfa
// cfd : 2014-12-11 IG Group Holdings PLC
cfd
// channel : 2014-05-08 Charleston Road Registry Inc.
channel
// chat : 2014-12-04 Sand Fields, LLC
chat
// cheap : 2013-11-14 Sand Cover, LLC
cheap
// chloe : 2014-10-16 Richemont DNS Inc.
chloe
// christmas : 2013-11-21 Uniregistry, Corp.
christmas
// chrome : 2014-07-24 Charleston Road Registry Inc.
chrome
// church : 2014-02-06 Holly Fileds, LLC
church
// circle : 2014-12-18 Amazon EU S.à r.l.
circle
// cisco : 2014-12-22 Cisco Technology, Inc.
cisco
// citic : 2014-01-09 CITIC Group Corporation
citic
// city : 2014-05-29 Snow Sky, LLC
city
// cityeats : 2014-12-11 Lifestyle Domain Holdings, Inc.
cityeats
// claims : 2014-03-20 Black Corner, LLC
claims
// cleaning : 2013-12-05 Fox Shadow, LLC
cleaning
// click : 2014-06-05 Uniregistry, Corp.
click
// clinic : 2014-03-20 Goose Park, LLC
clinic
// clothing : 2013-08-27 Steel Lake, LLC
clothing
// club : 2013-11-08 .CLUB DOMAINS, LLC
club
// coach : 2014-10-09 Koko Island, LLC
coach
// codes : 2013-10-31 Puff Willow, LLC
codes
// coffee : 2013-10-17 Trixy Cover, LLC
coffee
// college : 2014-01-16 XYZ.COM LLC
college
// cologne : 2014-02-05 NetCologne Gesellschaft für Telekommunikation mbH
cologne
// commbank : 2014-06-26 COMMONWEALTH BANK OF AUSTRALIA
commbank
// community : 2013-12-05 Fox Orchard, LLC
community
// company : 2013-11-07 Silver Avenue, LLC
company
// computer : 2013-10-24 Pine Mill, LLC
computer
// comsec : 2015-01-08 VeriSign, Inc.
comsec
// condos : 2013-12-05 Pine House, LLC
condos
// construction : 2013-09-16 Fox Dynamite, LLC
construction
// consulting : 2013-12-05
consulting
// contact : 2015-01-08 Top Level Spectrum, Inc.
contact
// contractors : 2013-09-10 Magic Woods, LLC
contractors
// cooking : 2013-11-21 Top Level Domain Holdings Limited
cooking
// cool : 2013-11-14 Koko Lake, LLC
cool
// corsica : 2014-09-25 Collectivité Territoriale de Corse
corsica
// country : 2013-12-19 Top Level Domain Holdings Limited
country
// courses : 2014-12-04 OPEN UNIVERSITIES AUSTRALIA PTY LTD
courses
// credit : 2014-03-20 Snow Shadow, LLC
credit
// creditcard : 2014-03-20 Binky Frostbite, LLC
creditcard
// creditunion : 2015-01-22 CUNA Performance Resources, LLC
creditunion
// cricket : 2014-10-09 dot Cricket Limited
cricket
// crown : 2014-10-24 Crown Equipment Corporation
crown
// crs : 2014-04-03 Federated Co-operatives Limited
crs
// cruises : 2013-12-05 Spring Way, LLC
cruises
// csc : 2014-09-25 Alliance-One Services, Inc.
csc
// cuisinella : 2014-04-03 SALM S.A.S.
cuisinella
// cymru : 2014-05-08 Nominet UK
cymru
// cyou : 2015-01-22 Beijing Gamease Age Digital Technology Co., Ltd.
cyou
// dabur : 2014-02-06 Dabur India Limited
dabur
// dad : 2014-01-23 Charleston Road Registry Inc.
dad
// dance : 2013-10-24 United TLD Holdco Ltd.
dance
// date : 2014-11-20 dot Date Limited
date
// dating : 2013-12-05 Pine Fest, LLC
dating
// datsun : 2014-03-27 NISSAN MOTOR CO., LTD.
datsun
// day : 2014-01-30 Charleston Road Registry Inc.
day
// dclk : 2014-11-20 Charleston Road Registry Inc.
dclk
// dealer : 2014-12-22 Dealer Dot Com, Inc.
dealer
// deals : 2014-05-22 Sand Sunset, LLC
deals
// degree : 2014-03-06
degree
// delivery : 2014-09-11 Steel Station, LLC
delivery
// dell : 2014-10-24 Dell Inc.
dell
// democrat : 2013-10-24 United TLD Holdco Ltd.
democrat
// dental : 2014-03-20 Tin Birch, LLC
dental
// dentist : 2014-03-20
dentist
// desi : 2013-11-14 Desi Networks LLC
desi
// design : 2014-11-07 Top Level Design, LLC
design
// dev : 2014-10-16 Charleston Road Registry Inc.
dev
// diamonds : 2013-09-22 John Edge, LLC
diamonds
// diet : 2014-06-26 Uniregistry, Corp.
diet
// digital : 2014-03-06 Dash Park, LLC
digital
// direct : 2014-04-10 Half Trail, LLC
direct
// directory : 2013-09-20 Extra Madison, LLC
directory
// discount : 2014-03-06 Holly Hill, LLC
discount
// dnp : 2013-12-13 Dai Nippon Printing Co., Ltd.
dnp
// docs : 2014-10-16 Charleston Road Registry Inc.
docs
// dog : 2014-12-04 Koko Mill, LLC
dog
// doha : 2014-09-18 Communications Regulatory Authority (CRA)
doha
// domains : 2013-10-17 Sugar Cross, LLC
domains
// doosan : 2014-04-03 Doosan Corporation
doosan
// download : 2014-11-20 dot Support Limited
download
// dubai : 2015-01-01 Dubai Smart Government Department
dubai
// durban : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry
durban
// dvag : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG
dvag
// earth : 2014-12-04 Interlink Co., Ltd.
earth
// eat : 2014-01-23 Charleston Road Registry Inc.
eat
// edeka : 2014-12-18 EDEKA Verband kaufmännischer Genossenschaften e.V.
edeka
// education : 2013-11-07 Brice Way, LLC
education
// email : 2013-10-31 Spring Madison, LLC
email
// emerck : 2014-04-03 Merck KGaA
emerck
// energy : 2014-09-11 Binky Birch, LLC
energy
// engineer : 2014-03-06 United TLD Holdco Ltd.
engineer
// engineering : 2014-03-06 Romeo Canyon
engineering
// enterprises : 2013-09-20 Snow Oaks, LLC
enterprises
// epson : 2014-12-04 Seiko Epson Corporation
epson
// equipment : 2013-08-27 Corn Station, LLC
equipment
// erni : 2014-04-03 ERNI Group Holding AG
erni
// esq : 2014-05-08 Charleston Road Registry Inc.
esq
// estate : 2013-08-27 Trixy Park, LLC
estate
// eurovision : 2014-04-24 European Broadcasting Union (EBU)
eurovision
// eus : 2013-12-12 Puntueus Fundazioa
eus
// events : 2013-12-05 Pioneer Maple, LLC
events
// everbank : 2014-05-15 EverBank
everbank
// exchange : 2014-03-06 Spring Falls, LLC
exchange
// expert : 2013-11-21 Magic Pass, LLC
expert
// exposed : 2013-12-05 Victor Beach, LLC
exposed
// fage : 2014-12-18 Fage International S.A.
fage
// fail : 2014-03-06 Atomic Pipe, LLC
fail
// fairwinds : 2014-11-13 FairWinds Partners, LLC
fairwinds
// faith : 2014-11-20 dot Faith Limited
faith
// fan : 2014-03-06
fan
// fans : 2014-11-07 Asiamix Digital Limited
fans
// farm : 2013-11-07 Just Maple, LLC
farm
// fashion : 2014-07-03 Top Level Domain Holdings Limited
fashion
// fast : 2014-12-18 Amazon EU S.à r.l.
fast
// feedback : 2013-12-19 Top Level Spectrum, Inc.
feedback
// ferrero : 2014-12-18 Ferrero Trading Lux S.A.
ferrero
// film : 2015-01-08 Motion Picture Domain Registry Pty Ltd
film
// final : 2014-10-16 Núcleo de Informação e Coordenação do Ponto BR - NIC.br
final
// finance : 2014-03-20 Cotton Cypress, LLC
finance
// financial : 2014-03-06 Just Cover, LLC
financial
// firestone : 2014-12-18 Bridgestone Corporation
firestone
// firmdale : 2014-03-27 Firmdale Holdings Limited
firmdale
// fish : 2013-12-12 Fox Woods, LLC
fish
// fishing : 2013-11-21 Top Level Domain Holdings Limited
fishing
// fit : 2014-11-07 Top Level Domain Holdings Limited
fit
// fitness : 2014-03-06 Brice Orchard, LLC
fitness
// flights : 2013-12-05 Fox Station, LLC
flights
// florist : 2013-11-07 Half Cypress, LLC
florist
// flowers : 2014-10-09 Uniregistry, Corp.
flowers
// flsmidth : 2014-07-24 FLSmidth A/S
flsmidth
// fly : 2014-05-08 Charleston Road Registry Inc.
fly
// foo : 2014-01-23 Charleston Road Registry Inc.
foo
// football : 2014-12-18 Foggy Farms, LLC
football
// ford : 2014-11-13 Ford Motor Company
ford
// forex : 2014-12-11 IG Group Holdings PLC
forex
// forsale : 2014-05-22
forsale
// foundation : 2013-12-05 John Dale, LLC
foundation
// frl : 2014-05-15 FRLregistry B.V.
frl
// frogans : 2013-12-19 OP3FT
frogans
// fund : 2014-03-20 John Castle, LLC
fund
// furniture : 2014-03-20 Lone Fields, LLC
furniture
// futbol : 2013-09-20
futbol
// gal : 2013-11-07 Asociación puntoGAL
gal
// gallery : 2013-09-13 Sugar House, LLC
gallery
// garden : 2014-06-26 Top Level Domain Holdings Limited
garden
// gbiz : 2014-07-17 Charleston Road Registry Inc.
gbiz
// gdn : 2014-07-31 Joint Stock Company \
gdn
// gea : 2014-12-04 GEA Group Aktiengesellschaft
gea
// gent : 2014-01-23 COMBELL GROUP NV/SA
gent
// ggee : 2014-01-09 GMO Internet, Inc.
ggee
// gift : 2013-10-17 Uniregistry, Corp.
gift
// gifts : 2014-07-03 Goose Sky, LLC
gifts
// gives : 2014-03-06 United TLD Holdco Ltd.
gives
// giving : 2014-11-13 Giving Limited
giving
// glass : 2013-11-07 Black Cover, LLC
glass
// gle : 2014-07-24 Charleston Road Registry Inc.
gle
// global : 2014-04-17 Dot GLOBAL AS
global
// globo : 2013-12-19 Globo Comunicação e Participações S.A
globo
// gmail : 2014-05-01 Charleston Road Registry Inc.
gmail
// gmo : 2014-01-09 GMO Internet, Inc.
gmo
// gmx : 2014-04-24 1&1 Mail & Media GmbH
gmx
// gold : 2015-01-22 June Edge, LLC
gold
// goldpoint : 2014-11-20 YODOBASHI CAMERA CO.,LTD.
goldpoint
// golf : 2014-12-18 Lone falls, LLC
golf
// goo : 2014-12-18 NTT Resonant Inc.
goo
// goog : 2014-11-20 Charleston Road Registry Inc.
goog
// google : 2014-07-24 Charleston Road Registry Inc.
google
// gop : 2014-01-16 Republican State Leadership Committee, Inc.
gop
// got : 2014-12-18 Amazon EU S.à r.l.
got
// graphics : 2013-09-13 Over Madison, LLC
graphics
// gratis : 2014-03-20 Pioneer Tigers, LLC
gratis
// green : 2014-05-08 Afilias Limited
green
// gripe : 2014-03-06 Corn Sunset, LLC
gripe
// group : 2014-08-15 Romeo Town, LLC
group
// gucci : 2014-11-13 Guccio Gucci S.p.a.
gucci
// guge : 2014-08-28 Charleston Road Registry Inc.
guge
// guide : 2013-09-13 Snow Moon, LLC
guide
// guitars : 2013-11-14 Uniregistry, Corp.
guitars
// guru : 2013-08-27 Pioneer Cypress, LLC
guru
// hamburg : 2014-02-20 Hamburg Top-Level-Domain GmbH
hamburg
// hangout : 2014-11-13 Charleston Road Registry Inc.
hangout
// haus : 2013-12-05
haus
// healthcare : 2014-06-12 Silver Glen, LLC
healthcare
// help : 2014-06-26 Uniregistry, Corp.
help
// here : 2014-02-06 Charleston Road Registry Inc.
here
// hermes : 2014-07-10 HERMES INTERNATIONAL
hermes
// hiphop : 2014-03-06 Uniregistry, Corp.
hiphop
// hitachi : 2014-10-31 Hitachi, Ltd.
hitachi
// hiv : 2014-03-13 dotHIV gemeinnuetziger e.V.
hiv
// holdings : 2013-08-27 John Madison, LLC
holdings
// holiday : 2013-11-07 Goose Woods, LLC
holiday
// homes : 2014-01-09 DERHomes, LLC
homes
// honda : 2014-12-18 Honda Motor Co., Ltd.
honda
// horse : 2013-11-21 Top Level Domain Holdings Limited
horse
// host : 2014-04-17 DotHost Inc.
host
// hosting : 2014-05-29 Uniregistry, Corp.
hosting
// hotmail : 2014-12-18 Microsoft Corporation
hotmail
// house : 2013-11-07 Sugar Park, LLC
house
// how : 2014-01-23 Charleston Road Registry Inc.
how
// hsbc : 2014-10-24 HSBC Holdings PLC
hsbc
// ibm : 2014-07-31 International Business Machines Corporation
ibm
// ice : 2014-10-30 IntercontinentalExchange, Inc.
ice
// icu : 2015-01-08 One.com A/S
icu
// ifm : 2014-01-30 ifm electronic gmbh
ifm
// iinet : 2014-07-03 Connect West Pty. Ltd.
iinet
// immo : 2014-07-10 Auburn Bloom, LLC
immo
// immobilien : 2013-11-07 United TLD Holdco Ltd.
immobilien
// industries : 2013-12-05 Outer House, LLC
industries
// infiniti : 2014-03-27 NISSAN MOTOR CO., LTD.
infiniti
// ing : 2014-01-23 Charleston Road Registry Inc.
ing
// ink : 2013-12-05 Top Level Design, LLC
ink
// institute : 2013-11-07 Outer Maple, LLC
institute
// insure : 2014-03-20 Pioneer Willow, LLC
insure
// international : 2013-11-07 Wild Way, LLC
international
// investments : 2014-03-20 Holly Glen, LLC
investments
// ipiranga : 2014-08-28 Ipiranga Produtos de Petroleo S.A.
ipiranga
// irish : 2014-08-07 Dot-Irish LLC
irish
// ist : 2014-08-28 Istanbul Metropolitan Municipality
ist
// istanbul : 2014-08-28 Istanbul Metropolitan Municipality
istanbul
// itau : 2014-10-02 Itau Unibanco Holding S.A.
itau
// iwc : 2014-06-23 Richemont DNS Inc.
iwc
// jaguar : 2014-11-13 Jaguar Land Rover Ltd
jaguar
// java : 2014-06-19 Oracle Corporation
java
// jcb : 2014-11-20 JCB Co., Ltd.
jcb
// jetzt : 2014-01-09 New TLD Company AB
jetzt
// jlc : 2014-12-04 Richemont DNS Inc.
jlc
// joburg : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry
joburg
// jot : 2014-12-18 Amazon EU S.à r.l.
jot
// joy : 2014-12-18 Amazon EU S.à r.l.
joy
// jprs : 2014-09-18 Japan Registry Services Co., Ltd.
jprs
// juegos : 2014-03-20 Uniregistry, Corp.
juegos
// kaufen : 2013-11-07 United TLD Holdco Ltd.
kaufen
// kddi : 2014-09-12 KDDI CORPORATION
kddi
// kfh : 2014-12-04 Kuwait Finance House
kfh
// kim : 2013-09-23 Afilias Limited
kim
// kinder : 2014-11-07 Ferrero Trading Lux S.A.
kinder
// kitchen : 2013-09-20 Just Goodbye, LLC
kitchen
// kiwi : 2013-09-20 DOT KIWI LIMITED
kiwi
// koeln : 2014-01-09 NetCologne Gesellschaft für Telekommunikation mbH
koeln
// komatsu : 2015-01-08 Komatsu Ltd.
komatsu
// kpn : 2015-01-08 Koninklijke KPN N.V.
kpn
// krd : 2013-12-05 KRG Department of Information Technology
krd
// kred : 2013-12-19 KredTLD Pty Ltd
kred
// kyoto : 2014-11-07 Academic Institution: Kyoto Jyoho Gakuen
kyoto
// lacaixa : 2014-01-09 CAIXA D'ESTALVIS I PENSIONS DE BARCELONA
lacaixa
// land : 2013-09-10 Pine Moon, LLC
land
// landrover : 2014-11-13 Jaguar Land Rover Ltd
landrover
// lat : 2014-10-16 ECOM-LAC Federaciòn de Latinoamèrica y el Caribe para Internet y el Comercio Electrònico
lat
// latrobe : 2014-06-16 La Trobe University
latrobe
// law : 2015-01-22 Minds + Machines Group Limited
law
// lawyer : 2014-03-20
lawyer
// lds : 2014-03-20 IRI Domain Management, LLC (\
lds
// lease : 2014-03-06 Victor Trail, LLC
lease
// leclerc : 2014-08-07 A.C.D. LEC Association des Centres Distributeurs Edouard Leclerc
leclerc
// legal : 2014-10-16 Blue Falls, LLC
legal
// lgbt : 2014-05-08 Afilias Limited
lgbt
// liaison : 2014-10-02 Liaison Technologies, Incorporated
liaison
// lidl : 2014-09-18 Schwarz Domains und Services GmbH & Co. KG
lidl
// life : 2014-02-06 Trixy Oaks, LLC
life
// lifeinsurance : 2015-01-15 American Council of Life Insurers
lifeinsurance
// lifestyle : 2014-12-11 Lifestyle Domain Holdings, Inc.
lifestyle
// lighting : 2013-08-27 John McCook, LLC
lighting
// like : 2014-12-18 Amazon EU S.à r.l.
like
// limited : 2014-03-06 Big Fest, LLC
limited
// limo : 2013-10-17 Hidden Frostbite, LLC
limo
// lincoln : 2014-11-13 Ford Motor Company
lincoln
// linde : 2014-12-04 Linde Aktiengesellschaft
linde
// link : 2013-11-14 Uniregistry, Corp.
link
// live : 2014-12-04 Half Woods, LLC
live
// loan : 2014-11-20 dot Loan Limited
loan
// loans : 2014-03-20 June Woods, LLC
loans
// london : 2013-11-14 Dot London Domains Limited
london
// lotte : 2014-11-07 Lotte Holdings Co., Ltd.
lotte
// lotto : 2014-04-10 Afilias Limited
lotto
// love : 2014-12-22 Merchant Law Group LLP
love
// ltd : 2014-09-25 Over Corner, LLC
ltd
// ltda : 2014-04-17 DOMAIN ROBOT SERVICOS DE HOSPEDAGEM NA INTERNET LTDA
ltda
// lupin : 2014-11-07 LUPIN LIMITED
lupin
// luxe : 2014-01-09 Top Level Domain Holdings Limited
luxe
// luxury : 2013-10-17 Luxury Partners, LLC
luxury
// madrid : 2014-05-01 Comunidad de Madrid
madrid
// maif : 2014-10-02 Mutuelle Assurance Instituteur France (MAIF)
maif
// maison : 2013-12-05 Victor Frostbite, LLC
maison
// makeup : 2015-01-15 L'Oréal
makeup
// man : 2014-12-04 MAN SE
man
// management : 2013-11-07 John Goodbye, LLC
management
// mango : 2013-10-24 PUNTO FA S.L.
mango
// market : 2014-03-06
market
// marketing : 2013-11-07 Fern Pass, LLC
marketing
// markets : 2014-12-11 IG Group Holdings PLC
markets
// marriott : 2014-10-09 Marriott Worldwide Corporation
marriott
// media : 2014-03-06 Grand Glen, LLC
media
// meet : 2014-01-16 Afilias Limited
meet
// melbourne : 2014-05-29 The Crown in right of the State of Victoria, represented by its Department of State Development, Business and Innovation
melbourne
// meme : 2014-01-30 Charleston Road Registry Inc.
meme
// memorial : 2014-10-16 Dog Beach, LLC
memorial
// menu : 2013-09-11 Wedding TLD2, LLC
menu
// meo : 2014-11-07 PT Comunicacoes S.A.
meo
// miami : 2013-12-19 Top Level Domain Holdings Limited
miami
// microsoft : 2014-12-18 Microsoft Corporation
microsoft
// mini : 2014-01-09 Bayerische Motoren Werke Aktiengesellschaft
mini
// mma : 2014-11-07 MMA IARD
mma
// mobily : 2014-12-18 GreenTech Consultancy Company W.L.L.
mobily
// moda : 2013-11-07 United TLD Holdco Ltd.
moda
// moe : 2013-11-13 Interlink Co., Ltd.
moe
// moi : 2014-12-18 Amazon EU S.à r.l.
moi
// monash : 2013-09-30 Monash University
monash
// money : 2014-10-16 Outer McCook, LLC
money
// montblanc : 2014-06-23 Richemont DNS Inc.
montblanc
// mormon : 2013-12-05 IRI Domain Management, LLC (\
mormon
// mortgage : 2014-03-20
mortgage
// moscow : 2013-12-19 Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID)
moscow
// motorcycles : 2014-01-09 DERMotorcycles, LLC
motorcycles
// mov : 2014-01-30 Charleston Road Registry Inc.
mov
// movistar : 2014-10-16 Telefónica S.A.
movistar
// mtn : 2014-12-04 MTN Dubai Limited
mtn
// mtpc : 2014-11-20 Mitsubishi Tanabe Pharma Corporation
mtpc
// nadex : 2014-12-11 IG Group Holdings PLC
nadex
// nagoya : 2013-10-24 GMO Registry, Inc.
nagoya
// navy : 2014-03-06 United TLD Holdco Ltd.
navy
// nec : 2015-01-08 NEC Corporation
nec
// netbank : 2014-06-26 COMMONWEALTH BANK OF AUSTRALIA
netbank
// network : 2013-11-14 Trixy Manor, LLC
network
// neustar : 2013-12-05 NeuStar, Inc.
neustar
// new : 2014-01-30 Charleston Road Registry Inc.
new
// news : 2014-12-18 Hidden Bloom, LLC
news
// nexus : 2014-07-24 Charleston Road Registry Inc.
nexus
// ngo : 2014-03-06 Public Interest Registry
ngo
// nhk : 2014-02-13 Japan Broadcasting Corporation (NHK)
nhk
// nico : 2014-12-04 DWANGO Co., Ltd.
nico
// ninja : 2013-11-07 United TLD Holdco Ltd.
ninja
// nissan : 2014-03-27 NISSAN MOTOR CO., LTD.
nissan
// nokia : 2015-01-08 Nokia Corporation
nokia
// norton : 2014-12-04 Symantec Corporation
norton
// nowruz : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.
nowruz
// nra : 2014-05-22 NRA Holdings Company, INC.
nra
// nrw : 2013-11-21 Minds + Machines GmbH
nrw
// ntt : 2014-10-31 NIPPON TELEGRAPH AND TELEPHONE CORPORATION
ntt
// nyc : 2014-01-23 The City of New York by and through the New York City Department of Information Technology & Telecommunications
nyc
// obi : 2014-09-25 OBI Group Holding SE & Co. KGaA
obi
// okinawa : 2013-12-05 BusinessRalliart Inc.
okinawa
// omega : 2015-01-08 The Swatch Group Ltd
omega
// one : 2014-11-07 One.com A/S
one
// ong : 2014-03-06 Public Interest Registry
ong
// onl : 2013-09-16 I-Registry Ltd.
onl
// online : 2015-01-15 DotOnline Inc.
online
// ooo : 2014-01-09 INFIBEAM INCORPORATION LIMITED
ooo
// oracle : 2014-06-19 Oracle Corporation
oracle
// organic : 2014-03-27 Afilias Limited
organic
// osaka : 2014-09-04 Interlink Co., Ltd.
osaka
// otsuka : 2013-10-11 Otsuka Holdings Co., Ltd.
otsuka
// ovh : 2014-01-16 OVH SAS
ovh
// page : 2014-12-04 Charleston Road Registry Inc.
page
// panerai : 2014-11-07 Richemont DNS Inc.
panerai
// paris : 2014-01-30 City of Paris
paris
// pars : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.
pars
// partners : 2013-12-05 Magic Glen, LLC
partners
// parts : 2013-12-05 Sea Goodbye, LLC
parts
// party : 2014-09-11 Blue Sky Registry Limited
party
// pharmacy : 2014-06-19 National Association of Boards of Pharmacy
pharmacy
// philips : 2014-11-07 Koninklijke Philips N.V.
philips
// photo : 2013-11-14 Uniregistry, Corp.
photo
// photography : 2013-09-20 Sugar Glen, LLC
photography
// photos : 2013-10-17 Sea Corner, LLC
photos
// physio : 2014-05-01 PhysBiz Pty Ltd
physio
// piaget : 2014-10-16 Richemont DNS Inc.
piaget
// pics : 2013-11-14 Uniregistry, Corp.
pics
// pictet : 2014-06-26 Pictet Europe S.A.
pictet
// pictures : 2014-03-06 Foggy Sky, LLC
pictures
// pid : 2015-01-08 Top Level Spectrum, Inc.
pid
// pin : 2014-12-18 Amazon EU S.à r.l.
pin
// pink : 2013-10-01 Afilias Limited
pink
// pizza : 2014-06-26 Foggy Moon, LLC
pizza
// place : 2014-04-24 Snow Galley, LLC
place
// plumbing : 2013-09-10 Spring Tigers, LLC
plumbing
// pohl : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG
pohl
// poker : 2014-07-03 Afilias Domains No. 5 Limited
poker
// porn : 2014-10-16 ICM Registry PN LLC
porn
// praxi : 2013-12-05 Praxi S.p.A.
praxi
// press : 2014-04-03 DotPress Inc.
press
// prod : 2014-01-23 Charleston Road Registry Inc.
prod
// productions : 2013-12-05 Magic Birch, LLC
productions
// prof : 2014-07-24 Charleston Road Registry Inc.
prof
// promo : 2014-12-18 Play.PROMO Oy
promo
// properties : 2013-12-05 Big Pass, LLC
properties
// property : 2014-05-22 Uniregistry, Corp.
property
// pub : 2013-12-12 United TLD Holdco Ltd.
pub
// qpon : 2013-11-14 dotCOOL, Inc.
qpon
// quebec : 2013-12-19 PointQuébec Inc
quebec
// racing : 2014-12-04 Premier Registry Limited
racing
// read : 2014-12-18 Amazon EU S.à r.l.
read
// realtor : 2014-05-29 Real Estate Domains LLC
realtor
// recipes : 2013-10-17 Grand Island, LLC
recipes
// red : 2013-11-07 Afilias Limited
red
// redstone : 2014-10-31 Redstone Haute Couture Co., Ltd.
redstone
// rehab : 2014-03-06 United TLD Holdco Ltd.
rehab
// reise : 2014-03-13 dotreise GmbH
reise
// reisen : 2014-03-06 New Cypress, LLC
reisen
// reit : 2014-09-04 National Association of Real Estate Investment Trusts, Inc.
reit
// ren : 2013-12-12 Beijing Qianxiang Wangjing Technology Development Co., Ltd.
ren
// rent : 2014-12-04 DERRent, LLC
rent
// rentals : 2013-12-05 Big Hollow,LLC
rentals
// repair : 2013-11-07 Lone Sunset, LLC
repair
// report : 2013-12-05 Binky Glen, LLC
report
// republican : 2014-03-20 United TLD Holdco Ltd.
republican
// rest : 2013-12-19 Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable
rest
// restaurant : 2014-07-03 Snow Avenue, LLC
restaurant
// review : 2014-11-20 dot Review Limited
review
// reviews : 2013-09-13
reviews
// rich : 2013-11-21 I-Registry Ltd.
rich
// ricoh : 2014-11-20 Ricoh Company, Ltd.
ricoh
// rio : 2014-02-27 Empresa Municipal de Informática SA - IPLANRIO
rio
// rip : 2014-07-10 United TLD Holdco Ltd.
rip
// rocher : 2014-12-18 Ferrero Trading Lux S.A.
rocher
// rocks : 2013-11-14
rocks
// rodeo : 2013-12-19 Top Level Domain Holdings Limited
rodeo
// room : 2014-12-18 Amazon EU S.à r.l.
room
// rsvp : 2014-05-08 Charleston Road Registry Inc.
rsvp
// ruhr : 2013-10-02 regiodot GmbH & Co. KG
ruhr
// ryukyu : 2014-01-09 BusinessRalliart Inc.
ryukyu
// saarland : 2013-12-12 dotSaarland GmbH
saarland
// safe : 2014-12-18 Amazon EU S.à r.l.
safe
// safety : 2015-01-08 Safety Registry Services, LLC.
safety
// sakura : 2014-12-18 SAKURA Internet Inc.
sakura
// sale : 2014-10-16
sale
// salon : 2014-12-11 Outer Orchard, LLC
salon
// samsung : 2014-04-03 SAMSUNG SDS CO., LTD
samsung
// sandvik : 2014-11-13 Sandvik AB
sandvik
// sandvikcoromant : 2014-11-07 Sandvik AB
sandvikcoromant
// sanofi : 2014-10-09 Sanofi
sanofi
// sap : 2014-03-27 SAP AG
sap
// sapo : 2014-11-07 PT Comunicacoes S.A.
sapo
// sarl : 2014-07-03 Delta Orchard, LLC
sarl
// saxo : 2014-10-31 Saxo Bank A/S
saxo
// sbs : 2014-11-07 SPECIAL BROADCASTING SERVICE CORPORATION
sbs
// sca : 2014-03-13 SVENSKA CELLULOSA AKTIEBOLAGET SCA (publ)
sca
// scb : 2014-02-20 The Siam Commercial Bank Public Company Limited (\
scb
// schmidt : 2014-04-03 SALM S.A.S.
schmidt
// scholarships : 2014-04-24 Scholarships.com, LLC
scholarships
// school : 2014-12-18 Little Galley, LLC
school
// schule : 2014-03-06 Outer Moon, LLC
schule
// schwarz : 2014-09-18 Schwarz Domains und Services GmbH & Co. KG
schwarz
// science : 2014-09-11 dot Science Limited
science
// scor : 2014-10-31 SCOR SE
scor
// scot : 2014-01-23 Dot Scot Registry Limited
scot
// seat : 2014-05-22 SEAT, S.A. (Sociedad Unipersonal)
seat
// seek : 2014-12-04 Seek Limited
seek
// sener : 2014-10-24 Sener Ingeniería y Sistemas, S.A.
sener
// services : 2014-02-27 Fox Castle, LLC
services
// sew : 2014-07-17 SEW-EURODRIVE GmbH & Co KG
sew
// sex : 2014-11-13 ICM Registry SX LLC
sex
// sexy : 2013-09-11 Uniregistry, Corp.
sexy
// sharp : 2014-05-01 Sharp Corporation
sharp
// shia : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.
shia
// shiksha : 2013-11-14 Afilias Limited
shiksha
// shoes : 2013-10-02 Binky Galley, LLC
shoes
// shouji : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD.
shouji
// shriram : 2014-01-23 Shriram Capital Ltd.
shriram
// singles : 2013-08-27 Fern Madison, LLC
singles
// site : 2015-01-15 DotSite Inc.
site
// skin : 2015-01-15 L'Oréal
skin
// sky : 2014-06-19 Sky IP International Ltd, a company incorporated in England and Wales, operating via its registered Swiss branch
sky
// skype : 2014-12-18 Microsoft Corporation
skype
// smile : 2014-12-18 Amazon EU S.à r.l.
smile
// social : 2013-11-07 United TLD Holdco Ltd.
social
// software : 2014-03-20
software
// sohu : 2013-12-19 Sohu.com Limited
sohu
// solar : 2013-11-07 Ruby Town, LLC
solar
// solutions : 2013-11-07 Silver Cover, LLC
solutions
// sony : 2015-01-08 Sony Corporation
sony
// soy : 2014-01-23 Charleston Road Registry Inc.
soy
// space : 2014-04-03 DotSpace Inc.
space
// spiegel : 2014-02-05 SPIEGEL-Verlag Rudolf Augstein GmbH & Co. KG
spiegel
// spreadbetting : 2014-12-11 IG Group Holdings PLC
spreadbetting
// stada : 2014-11-13 STADA Arzneimittel AG
stada
// star : 2015-01-08 Star India Private Limited
star
// statoil : 2014-12-04 Statoil ASA
statoil
// stc : 2014-10-09 Saudi Telecom Company
stc
// stcgroup : 2014-10-09 Saudi Telecom Company
stcgroup
// stockholm : 2014-12-18 Stockholms kommun
stockholm
// storage : 2014-12-22 Self Storage Company LLC
storage
// study : 2014-12-11 OPEN UNIVERSITIES AUSTRALIA PTY LTD
study
// style : 2014-12-04 Binky Moon, LLC
style
// sucks : 2014-12-22 Vox Populi Registry Inc.
sucks
// supplies : 2013-12-19 Atomic Fields, LLC
supplies
// supply : 2013-12-19 Half Falls, LLC
supply
// support : 2013-10-24 Grand Orchard, LLC
support
// surf : 2014-01-09 Top Level Domain Holdings Limited
surf
// surgery : 2014-03-20 Tin Avenue, LLC
surgery
// suzuki : 2014-02-20 SUZUKI MOTOR CORPORATION
suzuki
// swatch : 2015-01-08 The Swatch Group Ltd
swatch
// swiss : 2014-10-16 Swiss Confederation
swiss
// sydney : 2014-09-18 State of New South Wales, Department of Premier and Cabinet
sydney
// symantec : 2014-12-04 Symantec Corporation
symantec
// systems : 2013-11-07 Dash Cypress, LLC
systems
// tab : 2014-12-04 Tabcorp Holdings Limited
tab
// taipei : 2014-07-10 Taipei City Government
taipei
// taobao : 2015-01-15 Alibaba Group Holding Limited
taobao
// tatar : 2014-04-24 Limited Liability Company \
tatar
// tattoo : 2013-08-30 Uniregistry, Corp.
tattoo
// tax : 2014-03-20 Storm Orchard, LLC
tax
// tci : 2014-09-12 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.
tci
// technology : 2013-09-13 Auburn Falls
technology
// telefonica : 2014-10-16 Telefónica S.A.
telefonica
// temasek : 2014-08-07 Temasek Holdings (Private) Limited
temasek
// tennis : 2014-12-04 Cotton Bloom, LLC
tennis
// tienda : 2013-11-14 Victor Manor, LLC
tienda
// tips : 2013-09-20 Corn Willow, LLC
tips
// tires : 2014-11-07 Dog Edge, LLC
tires
// tirol : 2014-04-24 punkt Tirol GmbH
tirol
// tmall : 2015-01-15 Alibaba Group Holding Limited
tmall
// today : 2013-09-20 Pearl Woods, LLC
today
// tokyo : 2013-11-13 GMO Registry, Inc.
tokyo
// tools : 2013-11-21 Pioneer North, LLC
tools
// top : 2014-03-20 Jiangsu Bangning Science & Technology Co.,Ltd.
top
// toray : 2014-12-18 Toray Industries, Inc.
toray
// toshiba : 2014-04-10 TOSHIBA Corporation
toshiba
// tours : 2015-01-22 Sugar Station, LLC
tours
// town : 2014-03-06 Koko Moon, LLC
town
// toys : 2014-03-06 Pioneer Orchard, LLC
toys
// trade : 2014-01-23 Elite Registry Limited
trade
// trading : 2014-12-11 IG Group Holdings PLC
trading
// training : 2013-11-07 Wild Willow, LLC
training
// trust : 2014-10-16
trust
// tui : 2014-07-03 TUI AG
tui
// tushu : 2014-12-18 Amazon EU S.à r.l.
tushu
// ubs : 2014-12-11 UBS AG
ubs
// university : 2014-03-06 Little Station, LLC
university
// uno : 2013-09-11 Dot Latin LLC
uno
// uol : 2014-05-01 UBN INTERNET LTDA.
uol
// vacations : 2013-12-05 Atomic Tigers, LLC
vacations
// vana : 2014-12-11 Lifestyle Domain Holdings, Inc.
vana
// vegas : 2014-01-16 Dot Vegas, Inc.
vegas
// ventures : 2013-08-27 Binky Lake, LLC
ventures
// versicherung : 2014-03-20 dotversicherung-registry GmbH
versicherung
// vet : 2014-03-06
vet
// viajes : 2013-10-17 Black Madison, LLC
viajes
// video : 2014-10-16
video
// villas : 2013-12-05 New Sky, LLC
villas
// vip : 2015-01-22 Minds + Machines Group Limited
vip
// virgin : 2014-09-25 Virgin Enterprises Limited
virgin
// vision : 2013-12-05 Koko Station, LLC
vision
// vista : 2014-09-18 Vistaprint Limited
vista
// vistaprint : 2014-09-18 Vistaprint Limited
vistaprint
// viva : 2014-11-07 Saudi Telecom Company
viva
// vlaanderen : 2014-02-06 DNS.be vzw
vlaanderen
// vodka : 2013-12-19 Top Level Domain Holdings Limited
vodka
// vote : 2013-11-21 Monolith Registry LLC
vote
// voting : 2013-11-13 Valuetainment Corp.
voting
// voto : 2013-11-21 Monolith Registry LLC
voto
// voyage : 2013-08-27 Ruby House, LLC
voyage
// wales : 2014-05-08 Nominet UK
wales
// walter : 2014-11-13 Sandvik AB
walter
// wang : 2013-10-24 Zodiac Leo Limited
wang
// wanggou : 2014-12-18 Amazon EU S.à r.l.
wanggou
// watch : 2013-11-14 Sand Shadow, LLC
watch
// watches : 2014-12-22 Richemont DNS Inc.
watches
// weather : 2015-01-08 The Weather Channel, LLC
weather
// webcam : 2014-01-23 dot Webcam Limited
webcam
// website : 2014-04-03 DotWebsite Inc.
website
// wed : 2013-10-01 Atgron, Inc.
wed
// wedding : 2014-04-24 Top Level Domain Holdings Limited
wedding
// whoswho : 2014-02-20 Who's Who Registry
whoswho
// wien : 2013-10-28 punkt.wien GmbH
wien
// wiki : 2013-11-07 Top Level Design, LLC
wiki
// williamhill : 2014-03-13 William Hill Organization Limited
williamhill
// win : 2014-11-20 First Registry Limited
win
// windows : 2014-12-18 Microsoft Corporation
windows
// wme : 2014-02-13 William Morris Endeavor Entertainment, LLC
wme
// work : 2013-12-19 Top Level Domain Holdings Limited
work
// works : 2013-11-14 Little Dynamite, LLC
works
// world : 2014-06-12 Bitter Fields, LLC
world
// wtc : 2013-12-19 World Trade Centers Association, Inc.
wtc
// wtf : 2014-03-06 Hidden Way, LLC
wtf
// xbox : 2014-12-18 Microsoft Corporation
xbox
// xerox : 2014-10-24 Xerox DNHC LLC
xerox
// xihuan : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD.
xihuan
// xin : 2014-12-11 Elegant Leader Limited
xin
// xn--11b4c3d : 2015-01-15 VeriSign Sarl
कॉम
// xn--1qqw23a : 2014-01-09 Guangzhou YU Wei Information Technology Co., Ltd.
佛山
// xn--30rr7y : 2014-06-12 Excellent First Limited
慈善
// xn--3bst00m : 2013-09-13 Eagle Horizon Limited
集团
// xn--3ds443g : 2013-09-08 TLD REGISTRY LIMITED
在线
// xn--3pxu8k : 2015-01-15 VeriSign Sarl
点看
// xn--42c2d9a : 2015-01-15 VeriSign Sarl
คอม
// xn--45q11c : 2013-11-21 Zodiac Scorpio Limited
八卦
// xn--4gbrim : 2013-10-04 Suhub Electronic Establishment
موقع
// xn--55qw42g : 2013-11-08 China Organizational Name Administration Center
公益
// xn--55qx5d : 2013-11-14 Computer Network Information Center of Chinese Academy of Sciences (China Internet Network Information Center)
公司
// xn--5tzm5g : 2014-12-22 Global Website TLD Asia Limited
网站
// xn--6frz82g : 2013-09-23 Afilias Limited
移动
// xn--6qq986b3xl : 2013-09-13 Tycoon Treasure Limited
我爱你
// xn--80adxhks : 2013-12-19 Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID)
москва
// xn--80asehdb : 2013-07-14 CORE Association
онлайн
// xn--80aswg : 2013-07-14 CORE Association
сайт
// xn--9dbq2a : 2015-01-15 VeriSign Sarl
קום
// xn--9et52u : 2014-06-12 RISE VICTORY LIMITED
时尚
// xn--b4w605ferd : 2014-08-07 Temasek Holdings (Private) Limited
淡马锡
// xn--c1avg : 2013-11-14 Public Interest Registry
орг
// xn--c2br7g : 2015-01-15 VeriSign Sarl
नेट
// xn--cg4bki : 2013-09-27 SAMSUNG SDS CO., LTD
삼성
// xn--czr694b : 2014-01-16 HU YI GLOBAL INFORMATION RESOURCES(HOLDING) COMPANY.HONGKONG LIMITED
商标
// xn--czrs0t : 2013-12-19 Wild Island, LLC
商店
// xn--czru2d : 2013-11-21 Zodiac Capricorn Limited
商城
// xn--d1acj3b : 2013-11-20 The Foundation for Network Initiatives “The Smart Internet”
дети
// xn--eckvdtc9d : 2014-12-18 Amazon EU S.à r.l.
ポイント
// xn--efvy88h : 2014-08-22 Xinhua News Agency Guangdong Branch 新华通讯社广东分社
新闻
// xn--fhbei : 2015-01-15 VeriSign Sarl
كوم
// xn--fiq228c5hs : 2013-09-08 TLD REGISTRY LIMITED
中文网
// xn--fiq64b : 2013-10-14 CITIC Group Corporation
中信
// xn--fjq720a : 2014-05-22 Will Bloom, LLC
娱乐
// xn--flw351e : 2014-07-31 Charleston Road Registry Inc.
谷歌
// xn--hxt814e : 2014-05-15 Zodiac Libra Limited
网店
// xn--i1b6b1a6a2e : 2013-11-14 Public Interest Registry
संगठन
// xn--imr513n : 2014-12-11 HU YI GLOBAL INFORMATION RESOURCES (HOLDING) COMPANY. HONGKONG LIMITED
餐厅
// xn--io0a7i : 2013-11-14 Computer Network Information Center of Chinese Academy of Sciences (China Internet Network Information Center)
网络
// xn--j1aef : 2015-01-15 VeriSign Sarl
ком
// xn--jlq61u9w7b : 2015-01-08 Nokia Corporation
诺基亚
// xn--kcrx77d1x4a : 2014-11-07 Koninklijke Philips N.V.
飞利浦
// xn--kpu716f : 2014-12-22 Richemont DNS Inc.
手表
// xn--kput3i : 2014-02-13 Beijing RITT-Net Technology Development Co., Ltd
手机
// xn--mgba3a3ejt : 2014-11-20 Aramco Services Company
ارامكو
// xn--mgbab2bd : 2013-10-31 CORE Association
بازار
// xn--mgbb9fbpob : 2014-12-18 GreenTech Consultancy Company W.L.L.
موبايلي
// xn--mgbt3dhd : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.
همراه
// xn--mk1bu44c : 2015-01-15 VeriSign Sarl
닷컴
// xn--mxtq1m : 2014-03-06 Net-Chinese Co., Ltd.
政府
// xn--ngbc5azd : 2013-07-13 International Domain Registry Pty. Ltd.
شبكة
// xn--ngbe9e0a : 2014-12-04 Kuwait Finance House
بيتك
// xn--nqv7f : 2013-11-14 Public Interest Registry
机构
// xn--nqv7fs00ema : 2013-11-14 Public Interest Registry
组织机构
// xn--nyqy26a : 2014-11-07 Stable Tone Limited
健康
// xn--p1acf : 2013-12-12 Rusnames Limited
рус
// xn--pbt977c : 2014-12-22 Richemont DNS Inc.
珠宝
// xn--pssy2u : 2015-01-15 VeriSign Sarl
大拿
// xn--q9jyb4c : 2013-09-17 Charleston Road Registry Inc.
みんな
// xn--qcka1pmc : 2014-07-31 Charleston Road Registry Inc.
グーグル
// xn--rhqv96g : 2013-09-11 Stable Tone Limited
世界
// xn--ses554g : 2014-01-16
网址
// xn--t60b56a : 2015-01-15 VeriSign Sarl
닷넷
// xn--tckwe : 2015-01-15 VeriSign Sarl
コム
// xn--unup4y : 2013-07-14 Spring Fields, LLC
游戏
// xn--vermgensberater-ctb : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG
vermögensberater
// xn--vermgensberatung-pwb : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG
vermögensberatung
// xn--vhquv : 2013-08-27 Dash McCook, LLC
企业
// xn--vuq861b : 2014-10-16 Beijing Tele-info Network Technology Co., Ltd.
信息
// xn--xhq521b : 2013-11-14 Guangzhou YU Wei Information Technology Co., Ltd.
广东
// xn--zfr164b : 2013-11-08 China Organizational Name Administration Center
政务
// xyz : 2013-12-05 XYZ.COM LLC
xyz
// yachts : 2014-01-09 DERYachts, LLC
yachts
// yamaxun : 2014-12-18 Amazon EU S.à r.l.
yamaxun
// yandex : 2014-04-10 YANDEX, LLC
yandex
// yodobashi : 2014-11-20 YODOBASHI CAMERA CO.,LTD.
yodobashi
// yoga : 2014-05-29 Top Level Domain Holdings Limited
yoga
// yokohama : 2013-12-12 GMO Registry, Inc.
yokohama
// youtube : 2014-05-01 Charleston Road Registry Inc.
youtube
// yun : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD.
yun
// zara : 2014-11-07 Industria de Diseño Textil, S.A. (INDITEX, S.A.)
zara
// zero : 2014-12-18 Amazon EU S.à r.l.
zero
// zip : 2014-05-08 Charleston Road Registry Inc.
zip
// zone : 2013-11-14 Outer Falls, LLC
zone
// zuerich : 2014-11-07 Kanton Zürich (Canton of Zurich)
zuerich
// ===END ICANN DOMAINS===
// ===BEGIN PRIVATE DOMAINS===
// (Note: these are in alphabetical order by company name)
// Amazon CloudFront : https://aws.amazon.com/cloudfront/
// Submitted by Donavan Miller 2013-03-22
cloudfront.net
// Amazon Elastic Compute Cloud: https://aws.amazon.com/ec2/
// Submitted by Osman Surkatty 2014-12-16
ap-northeast-1.compute.amazonaws.com
ap-southeast-1.compute.amazonaws.com
ap-southeast-2.compute.amazonaws.com
cn-north-1.compute.amazonaws.cn
compute.amazonaws.cn
compute.amazonaws.com
compute-1.amazonaws.com
eu-west-1.compute.amazonaws.com
eu-central-1.compute.amazonaws.com
sa-east-1.compute.amazonaws.com
us-east-1.amazonaws.com
us-gov-west-1.compute.amazonaws.com
us-west-1.compute.amazonaws.com
us-west-2.compute.amazonaws.com
z-1.compute-1.amazonaws.com
z-2.compute-1.amazonaws.com
// Amazon Elastic Beanstalk : https://aws.amazon.com/elasticbeanstalk/
// Submitted by Adam Stein 2013-04-02
elasticbeanstalk.com
// Amazon Elastic Load Balancing : https://aws.amazon.com/elasticloadbalancing/
// Submitted by Scott Vidmar 2013-03-27
elb.amazonaws.com
// Amazon S3 : https://aws.amazon.com/s3/
// Submitted by Courtney Eckhardt 2013-03-22
s3.amazonaws.com
s3-us-west-2.amazonaws.com
s3-us-west-1.amazonaws.com
s3-eu-west-1.amazonaws.com
s3-ap-southeast-1.amazonaws.com
s3-ap-southeast-2.amazonaws.com
s3-ap-northeast-1.amazonaws.com
s3-sa-east-1.amazonaws.com
s3-us-gov-west-1.amazonaws.com
s3-fips-us-gov-west-1.amazonaws.com
s3-website-us-east-1.amazonaws.com
s3-website-us-west-2.amazonaws.com
s3-website-us-west-1.amazonaws.com
s3-website-eu-west-1.amazonaws.com
s3-website-ap-southeast-1.amazonaws.com
s3-website-ap-southeast-2.amazonaws.com
s3-website-ap-northeast-1.amazonaws.com
s3-website-sa-east-1.amazonaws.com
s3-website-us-gov-west-1.amazonaws.com
// BetaInABox
// Submitted by adrian@betainabox.com 2012-09-13
betainabox.com
// CentralNic : http://www.centralnic.com/names/domains
// Submitted by registry 2012-09-27
ae.org
ar.com
br.com
cn.com
com.de
com.se
de.com
eu.com
gb.com
gb.net
hu.com
hu.net
jp.net
jpn.com
kr.com
mex.com
no.com
qc.com
ru.com
sa.com
se.com
se.net
uk.com
uk.net
us.com
uy.com
za.bz
za.com
// Africa.com Web Solutions Ltd : https://registry.africa.com
// Submitted by Gavin Brown 2014-02-04
africa.com
// iDOT Services Limited : http://www.domain.gr.com
// Submitted by Gavin Brown 2014-02-04
gr.com
// Radix FZC : http://domains.in.net
// Submitted by Gavin Brown 2014-02-04
in.net
// US REGISTRY LLC : http://us.org
// Submitted by Gavin Brown 2014-02-04
us.org
// co.com Registry, LLC : https://registry.co.com
// Submitted by Gavin Brown 2014-02-04
co.com
// c.la : http://www.c.la/
c.la
// cloudControl : https://www.cloudcontrol.com/
// Submitted by Tobias Wilken 2013-07-23
cloudcontrolled.com
cloudcontrolapp.com
// co.ca : http://registry.co.ca/
co.ca
// CoDNS B.V.
co.nl
co.no
// Commerce Guys, SAS
// Submitted by Damien Tournoud 2015-01-22
*.platform.sh
// Cupcake : https://cupcake.io/
// Submitted by Jonathan Rudenberg 2013-10-08
cupcake.is
// DreamHost : http://www.dreamhost.com/
// Submitted by Andrew Farmer 2012-10-02
dreamhosters.com
// DynDNS.com : http://www.dyndns.com/services/dns/dyndns/
dyndns-at-home.com
dyndns-at-work.com
dyndns-blog.com
dyndns-free.com
dyndns-home.com
dyndns-ip.com
dyndns-mail.com
dyndns-office.com
dyndns-pics.com
dyndns-remote.com
dyndns-server.com
dyndns-web.com
dyndns-wiki.com
dyndns-work.com
dyndns.biz
dyndns.info
dyndns.org
dyndns.tv
at-band-camp.net
ath.cx
barrel-of-knowledge.info
barrell-of-knowledge.info
better-than.tv
blogdns.com
blogdns.net
blogdns.org
blogsite.org
boldlygoingnowhere.org
broke-it.net
buyshouses.net
cechire.com
dnsalias.com
dnsalias.net
dnsalias.org
dnsdojo.com
dnsdojo.net
dnsdojo.org
does-it.net
doesntexist.com
doesntexist.org
dontexist.com
dontexist.net
dontexist.org
doomdns.com
doomdns.org
dvrdns.org
dyn-o-saur.com
dynalias.com
dynalias.net
dynalias.org
dynathome.net
dyndns.ws
endofinternet.net
endofinternet.org
endoftheinternet.org
est-a-la-maison.com
est-a-la-masion.com
est-le-patron.com
est-mon-blogueur.com
for-better.biz
for-more.biz
for-our.info
for-some.biz
for-the.biz
forgot.her.name
forgot.his.name
from-ak.com
from-al.com
from-ar.com
from-az.net
from-ca.com
from-co.net
from-ct.com
from-dc.com
from-de.com
from-fl.com
from-ga.com
from-hi.com
from-ia.com
from-id.com
from-il.com
from-in.com
from-ks.com
from-ky.com
from-la.net
from-ma.com
from-md.com
from-me.org
from-mi.com
from-mn.com
from-mo.com
from-ms.com
from-mt.com
from-nc.com
from-nd.com
from-ne.com
from-nh.com
from-nj.com
from-nm.com
from-nv.com
from-ny.net
from-oh.com
from-ok.com
from-or.com
from-pa.com
from-pr.com
from-ri.com
from-sc.com
from-sd.com
from-tn.com
from-tx.com
from-ut.com
from-va.com
from-vt.com
from-wa.com
from-wi.com
from-wv.com
from-wy.com
ftpaccess.cc
fuettertdasnetz.de
game-host.org
game-server.cc
getmyip.com
gets-it.net
go.dyndns.org
gotdns.com
gotdns.org
groks-the.info
groks-this.info
ham-radio-op.net
here-for-more.info
hobby-site.com
hobby-site.org
home.dyndns.org
homedns.org
homeftp.net
homeftp.org
homeip.net
homelinux.com
homelinux.net
homelinux.org
homeunix.com
homeunix.net
homeunix.org
iamallama.com
in-the-band.net
is-a-anarchist.com
is-a-blogger.com
is-a-bookkeeper.com
is-a-bruinsfan.org
is-a-bulls-fan.com
is-a-candidate.org
is-a-caterer.com
is-a-celticsfan.org
is-a-chef.com
is-a-chef.net
is-a-chef.org
is-a-conservative.com
is-a-cpa.com
is-a-cubicle-slave.com
is-a-democrat.com
is-a-designer.com
is-a-doctor.com
is-a-financialadvisor.com
is-a-geek.com
is-a-geek.net
is-a-geek.org
is-a-green.com
is-a-guru.com
is-a-hard-worker.com
is-a-hunter.com
is-a-knight.org
is-a-landscaper.com
is-a-lawyer.com
is-a-liberal.com
is-a-libertarian.com
is-a-linux-user.org
is-a-llama.com
is-a-musician.com
is-a-nascarfan.com
is-a-nurse.com
is-a-painter.com
is-a-patsfan.org
is-a-personaltrainer.com
is-a-photographer.com
is-a-player.com
is-a-republican.com
is-a-rockstar.com
is-a-socialist.com
is-a-soxfan.org
is-a-student.com
is-a-teacher.com
is-a-techie.com
is-a-therapist.com
is-an-accountant.com
is-an-actor.com
is-an-actress.com
is-an-anarchist.com
is-an-artist.com
is-an-engineer.com
is-an-entertainer.com
is-by.us
is-certified.com
is-found.org
is-gone.com
is-into-anime.com
is-into-cars.com
is-into-cartoons.com
is-into-games.com
is-leet.com
is-lost.org
is-not-certified.com
is-saved.org
is-slick.com
is-uberleet.com
is-very-bad.org
is-very-evil.org
is-very-good.org
is-very-nice.org
is-very-sweet.org
is-with-theband.com
isa-geek.com
isa-geek.net
isa-geek.org
isa-hockeynut.com
issmarterthanyou.com
isteingeek.de
istmein.de
kicks-ass.net
kicks-ass.org
knowsitall.info
land-4-sale.us
lebtimnetz.de
leitungsen.de
likes-pie.com
likescandy.com
merseine.nu
mine.nu
misconfused.org
mypets.ws
myphotos.cc
neat-url.com
office-on-the.net
on-the-web.tv
podzone.net
podzone.org
readmyblog.org
saves-the-whales.com
scrapper-site.net
scrapping.cc
selfip.biz
selfip.com
selfip.info
selfip.net
selfip.org
sells-for-less.com
sells-for-u.com
sells-it.net
sellsyourhome.org
servebbs.com
servebbs.net
servebbs.org
serveftp.net
serveftp.org
servegame.org
shacknet.nu
simple-url.com
space-to-rent.com
stuff-4-sale.org
stuff-4-sale.us
teaches-yoga.com
thruhere.net
traeumtgerade.de
webhop.biz
webhop.info
webhop.net
webhop.org
worse-than.tv
writesthisblog.com
// Fastly Inc. http://www.fastly.com/
// Submitted by Vladimir Vuksan 2013-05-31
a.ssl.fastly.net
b.ssl.fastly.net
global.ssl.fastly.net
a.prod.fastly.net
global.prod.fastly.net
// Firebase, Inc.
// Submitted by Chris Raynor 2014-01-21
firebaseapp.com
// Flynn : https://flynn.io
// Submitted by Jonathan Rudenberg 2014-07-12
flynnhub.com
// GDS : https://www.gov.uk/service-manual/operations/operating-servicegovuk-subdomains
// Submitted by David Illsley 2014-08-28
service.gov.uk
// GitHub, Inc.
// Submitted by Ben Toews 2014-02-06
github.io
githubusercontent.com
// GlobeHosting, Inc.
// Submitted by Zoltan Egresi 2013-07-12
ro.com
// Google, Inc.
// Submitted by Eduardo Vela 2014-12-19
appspot.com
blogspot.ae
blogspot.be
blogspot.bj
blogspot.ca
blogspot.cf
blogspot.ch
blogspot.co.at
blogspot.co.il
blogspot.co.nz
blogspot.co.uk
blogspot.com
blogspot.com.ar
blogspot.com.au
blogspot.com.br
blogspot.com.es
blogspot.com.tr
blogspot.cv
blogspot.cz
blogspot.de
blogspot.dk
blogspot.fi
blogspot.fr
blogspot.gr
blogspot.hk
blogspot.hu
blogspot.ie
blogspot.in
blogspot.it
blogspot.jp
blogspot.kr
blogspot.mr
blogspot.mx
blogspot.nl
blogspot.no
blogspot.pt
blogspot.re
blogspot.ro
blogspot.ru
blogspot.se
blogspot.sg
blogspot.sk
blogspot.td
blogspot.tw
codespot.com
googleapis.com
googlecode.com
pagespeedmobilizer.com
withgoogle.com
// Heroku : https://www.heroku.com/
// Submitted by Tom Maher 2013-05-02
herokuapp.com
herokussl.com
// iki.fi
// Submitted by Hannu Aronsson 2009-11-05
iki.fi
// info.at : http://www.info.at/
biz.at
info.at
// Michau Enterprises Limited : http://www.co.pl/
co.pl
// Microsoft : http://microsoft.com
// Submitted by Barry Dorrans 2014-01-24
azurewebsites.net
azure-mobile.net
cloudapp.net
// NFSN, Inc. : https://www.NearlyFreeSpeech.NET/
// Submitted by Jeff Wheelhouse 2014-02-02
nfshost.com
// NYC.mn : http://www.information.nyc.mn
// Submitted by Matthew Brown 2013-03-11
nyc.mn
// One Fold Media : http://www.onefoldmedia.com/
// Submitted by Eddie Jones 2014-06-10
nid.io
// Opera Software, A.S.A.
// Submitted by Yngve Pettersen 2009-11-26
operaunite.com
// OutSystems
// Submitted by Duarte Santos 2014-03-11
outsystemscloud.com
// .pl domains (grandfathered)
art.pl
gliwice.pl
krakow.pl
poznan.pl
wroc.pl
zakopane.pl
// priv.at : http://www.nic.priv.at/
// Submitted by registry 2008-06-09
priv.at
// Red Hat, Inc. OpenShift : https://openshift.redhat.com/
// Submitted by Tim Kramer 2012-10-24
rhcloud.com
// SinaAppEngine : http://sae.sina.com.cn/
// Submitted by SinaAppEngine 2015-02-02
sinaapp.com
vipsinaapp.com
1kapp.com
// TASK geographical domains (www.task.gda.pl/uslugi/dns)
gda.pl
gdansk.pl
gdynia.pl
med.pl
sopot.pl
// UDR Limited : http://www.udr.hk.com
// Submitted by registry 2014-11-07
hk.com
hk.org
ltd.hk
inc.hk
// Yola : https://www.yola.com/
// Submitted by Stefano Rivera 2014-07-09
yolasite.com
// ZaNiC : http://www.za.net/
// Submitted by registry 2009-10-03
za.net
za.org
// ===END PRIVATE DOMAINS===
quri-20150804-git/quri-test.asd 0000664 0000000 0000000 00000001516 12555317001 0016150 0 ustar 00root root 0000000 0000000 #|
This file is a part of quri project.
Copyright (c) 2014 Eitaro Fukamachi (e.arrows@gmail.com)
|#
(in-package :cl-user)
(defpackage quri-test-asd
(:use :cl :asdf))
(in-package :quri-test-asd)
(defsystem quri-test
:author "Eitaro Fukamachi"
:license "BSD 3-Clause"
:depends-on (:quri
:prove)
:components ((:module "t"
:components
((:test-file "quri")
(:test-file "parser")
(:test-file "decode")
(:test-file "encode")
(:test-file "domain")
(:test-file "etld")
(:file "benchmark"))))
:defsystem-depends-on (:prove-asdf)
:perform (test-op :after (op c)
(funcall (intern #.(string :run-test-system) :prove-asdf) c)
(asdf:clear-system c)))
quri-20150804-git/quri.asd 0000664 0000000 0000000 00000004175 12555317001 0015177 0 ustar 00root root 0000000 0000000 #|
This file is a part of quri project.
Copyright (c) 2014 Eitaro Fukamachi (e.arrows@gmail.com)
|#
#|
Author: Eitaro Fukamachi (e.arrows@gmail.com)
|#
(in-package :cl-user)
(defpackage quri-asd
(:use :cl :asdf))
(in-package :quri-asd)
(defsystem quri
:version "0.1.0"
:author "Eitaro Fukamachi"
:license "BSD 3-Clause"
:depends-on (:babel
:alexandria
:split-sequence
:cl-utilities
#+sbcl :sb-cltl2)
:components ((:module "src"
:components
((:file "quri" :depends-on ("uri" "uri-classes" "domain" "parser" "decode" "encode" "error"))
(:file "uri" :depends-on ("port"))
(:module "uri-classes"
:pathname "uri"
:depends-on ("uri" "port" "encode" "decode")
:components
((:file "ftp")
(:file "http")
(:file "ldap")
(:file "file")))
(:file "domain" :depends-on ("uri" "etld"))
(:file "etld")
(:file "parser" :depends-on ("error" "util"))
(:file "decode" :depends-on ("error" "util"))
(:file "encode")
(:file "port")
(:file "util")
(:file "error"))))
:description "Yet another URI library for Common Lisp"
:long-description
#.(with-open-file (stream (merge-pathnames
#p"README.markdown"
(or *load-pathname* *compile-file-pathname*))
:if-does-not-exist nil
:direction :input
:element-type #+lispworks :default #-lispworks 'character
:external-format #+clisp charset:utf-8 #-clisp :utf-8)
(when stream
(let ((seq (make-array (file-length stream)
:element-type 'character
:fill-pointer t)))
(setf (fill-pointer seq) (read-sequence seq stream))
seq)))
:in-order-to ((test-op (test-op quri-test))))
quri-20150804-git/src/ 0000775 0000000 0000000 00000000000 12555317001 0014306 5 ustar 00root root 0000000 0000000 quri-20150804-git/src/decode.lisp 0000664 0000000 0000000 00000013056 12555317001 0016427 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri.decode
(:use :cl
:quri.util
:quri.error)
(:import-from :babel
:octets-to-string)
(:import-from :babel-encodings
:*default-character-encoding*)
(:import-from :cl-utilities
:collecting
:collect)
(:export :url-decode
:url-decode-params))
(in-package :quri.decode)
(declaim (ftype (function (character) (unsigned-byte 4)) hexdigit-to-integer))
(defun hexdigit-to-integer (char)
(declare (type character char)
(optimize (speed 3) (safety 0)))
(let ((code (char-code char)))
(declare (type fixnum code))
(cond
((<= #.(char-code #\0) code #.(char-code #\9))
(- code #.(char-code #\0)))
((<= #.(char-code #\A) code #.(char-code #\F))
(- code #.(- (char-code #\A) 10)))
((<= #.(char-code #\a) code #.(char-code #\f))
(- code #.(- (char-code #\a) 10)))
(T (error 'url-decoding-error)))))
(defun url-decode (data &key
(encoding babel-encodings:*default-character-encoding*)
(start 0)
end)
(declare (type (or string (simple-array (unsigned-byte 8) (*))) data)
(type integer start)
(optimize (speed 3) (safety 2)))
(let* ((end (or end (length data)))
(buffer (make-array (- end start)
:element-type '(unsigned-byte 8)))
(i 0)
parsing-encoded-part)
(declare (type integer end i)
(type (simple-array (unsigned-byte 8)) buffer))
(flet ((write-to-buffer (byte)
(declare (optimize (speed 3) (safety 0)))
(setf (aref buffer i) byte)
(incf i)))
(with-array-parsing (char p data start end (and (not (stringp data))
#'code-char))
(parsing
(cond
((char= char #\%)
(gonext))
((char= char #\+)
(write-to-buffer #.(char-code #\Space))
(redo))
(T
(write-to-buffer (char-code char))
(redo))))
(parsing-encoded-part
(setq parsing-encoded-part
(* 16 (hexdigit-to-integer char)))
(gonext))
(parsing-encoded-part-second
(write-to-buffer
(+ parsing-encoded-part
(hexdigit-to-integer char)))
(setq parsing-encoded-part nil)
(goto parsing))
(:eof
(when parsing-encoded-part
(error 'url-decoding-error)))))
(babel:octets-to-string buffer :end i :encoding encoding)))
(defun url-decode-params (data &key
(delimiter #\&)
(encoding babel-encodings:*default-character-encoding*)
(start 0)
end
(lenient nil))
(declare (type (or string (simple-array (unsigned-byte 8) (*))) data)
(type integer start)
(type character delimiter)
(optimize (speed 3) (safety 2)))
(let ((end (or end (length data)))
(start-mark nil)
(=-mark nil))
(declare (type integer end))
(collecting
(flet ((collect-pair (p)
(tagbody
(handler-bind ((url-decoding-error
(lambda (error)
(declare (ignore error))
(when lenient
(go continue)))))
(collect (cons (url-decode data :encoding encoding :start start-mark :end =-mark)
(url-decode data :encoding encoding :start (1+ =-mark) :end p))))
continue)
(setq start-mark nil
=-mark nil))
(collect-field (p)
(tagbody
(handler-bind ((url-decoding-error
(lambda (error)
(declare (ignore error))
(when lenient
(go continue)))))
(collect (cons (url-decode data :encoding encoding :start start-mark :end p) nil)))
continue)
(setq start-mark nil)))
(with-array-parsing (char p data start end (and (not (stringp data))
#'code-char))
(start
(setq start-mark p)
(if lenient
(cond
((char= char #\=)
(setq =-mark p)
(goto parsing-value))
((char= char delimiter)
(redo)))
(when (or (char= char #\=)
(char= char delimiter))
(error 'uri-malformed-urlencoded-string)))
(gonext))
(parsing-field
(cond
((char= char #\=)
(setq =-mark p)
(gonext))
((char= char delimiter)
;; field only
(collect-field p)
(goto start)))
(redo))
(parsing-value
(cond
((char= char #\=)
(unless lenient
(error 'uri-malformed-urlencoded-string)))
((char= char delimiter)
(collect-pair p)
(goto start)))
(redo))
(:eof
(cond
(=-mark (collect-pair p))
(start-mark (collect-field p)))))))))
quri-20150804-git/src/domain.lisp 0000664 0000000 0000000 00000015357 12555317001 0016461 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri.domain
(:use :cl)
(:import-from :quri.uri
:uri-host)
(:import-from :quri.etld
:parse-domain)
(:import-from :alexandria
:xor
:ends-with-subseq
:length=
:when-let)
(:import-from :split-sequence
:split-sequence)
(:export :ipv4-addr-p
:ipv6-addr-p
:ip-addr-p
:ip-addr=
:uri-tld
:uri-domain
:cookie-domain-p))
(in-package :quri.domain)
(defun uri-tld (uri)
(let ((host (uri-host uri)))
(when (and host
(not (ip-addr-p host)))
(let ((pos (position #\. host :from-end t)))
(if pos
(subseq host (1+ pos))
host)))))
(defun uri-domain (uri)
(let ((host (uri-host uri)))
(when (and host
(not (ip-addr-p host)))
(parse-domain host))))
(defun ipv4-addr-p (host)
(declare (optimize (speed 3) (safety 2))
#+sbcl (sb-ext:muffle-conditions sb-ext:compiler-note))
(check-type host string)
(flet ((read-byte-string (string start)
(declare (type fixnum start))
(when (<= (length string) start)
(return-from read-byte-string nil))
(let* ((end (+ start 2))
(endp (<= (1- (length string)) end))
(end (if endp
(1- (length string))
end))
(res 0))
(declare (type fixnum end res))
(do ((i start (1+ i)))
((< end i))
(declare (type fixnum i))
(unless (char<= #\0 (aref string i) #\9)
(return-from read-byte-string
(if (= i start)
nil
(values res i nil))))
(setq res
(+ (* res 10)
(- (char-code (aref string i)) 48))))
(cond
(endp
(values res end t))
((char= (aref string (1+ end)) #\.)
(values res (1+ end) nil))))))
(let ((start 0))
(dotimes (i 4 t)
(multiple-value-bind (byte pos endp)
(read-byte-string host start)
(unless (typep byte '(unsigned-byte 8))
(return nil))
(unless (xor endp (not (= i 3)))
(return nil))
(setq start (1+ pos)))))))
(defun trim-brackets (host)
(if (char= (aref host 0) #\[)
(if (char= (aref host (1- (length host))) #\])
(subseq host 1 (1- (length host)))
nil)
host))
(defun ipv6-addr-p (host)
(declare (optimize (speed 3) (safety 2))
#+sbcl (sb-ext:muffle-conditions sb-ext:compiler-note))
(check-type host string)
(when (= (length host) 0)
(return-from ipv6-addr-p nil))
(labels ((read-section (string start &optional read-colons)
(declare (type string string)
(type fixnum start))
(when (<= (length string) start)
(return-from read-section nil))
(when (char= (aref string start) #\:)
(cond
((<= (length string) (1+ start))
(return-from read-section nil))
((char= (aref string (1+ start)) #\:)
(if read-colons
(return-from read-section nil)
(return-from read-section (read-section string (+ 2 start) t))))
(t (incf start))))
(let* ((end (+ start 4))
(endp (<= (length string) end))
(end (if endp
(length string)
end)))
(declare (type fixnum end))
(do ((i start (1+ i)))
((= end i))
(let ((ch (aref string i)))
(cond
((char= ch #\:)
(return-from read-section
(values i read-colons nil)))
((or (char<= #\0 ch #\9)
(char<= #\a ch #\f)
(char<= #\A ch #\F)))
(t (return-from read-section nil)))))
(if endp
(values end read-colons endp)
(if (char= (aref string end) #\:)
(values end read-colons endp)
nil)))))
(setq host (trim-brackets host))
(unless host
(return-from ipv6-addr-p nil))
(let ((start 0)
(read-colons-p nil))
(dotimes (i 8 t)
(multiple-value-bind (e read-colons endp)
(read-section host start read-colons-p)
(unless e
(return-from ipv6-addr-p nil))
(when endp
(when (and (not (= i 7))
(not read-colons))
(return-from ipv6-addr-p nil))
(return-from ipv6-addr-p t))
(setq start e
read-colons-p read-colons))))))
(defun ip-addr-p (host)
(or (ipv4-addr-p host)
(ipv6-addr-p host)))
(defun ip-addr= (ip1 ip2)
(flet ((parse-ipv6 (ip)
(setq ip (trim-brackets ip))
(cond
((char= (aref ip 0) #\:)
(setq ip (concatenate 'string "0" ip)))
((char= (aref ip (1- (length ip))) #\:)
(setq ip (concatenate 'string ip "0"))))
(let* ((ip-parsed (split-sequence #\: ip))
(len (length ip-parsed)))
(loop for section in ip-parsed
if (string= section "")
append (make-list (- 9 len) :initial-element 0)
else
collect (parse-integer section :radix 16)))))
(cond
((ipv4-addr-p ip1)
(string= ip1 ip2))
((ipv6-addr-p ip1)
(and (ipv6-addr-p ip2)
(equal (parse-ipv6 ip1)
(parse-ipv6 ip2)))))))
(defun cookie-domain-p (domain cookie-domain)
(unless cookie-domain
(return-from cookie-domain-p t))
(if (ip-addr-p domain)
(ip-addr= domain cookie-domain)
(progn
;; ignore the preceding "."
(when (char= (aref cookie-domain 0) #\.)
(setq cookie-domain (subseq cookie-domain 1)))
(when-let (registered-domain (parse-domain domain))
(cond
((length= registered-domain cookie-domain)
(string= registered-domain cookie-domain))
((length= domain cookie-domain)
(string= domain cookie-domain))
(t (and (ends-with-subseq domain cookie-domain)
(char= #\.
(aref cookie-domain (- (length cookie-domain)
(length registered-domain)))))))))))
quri-20150804-git/src/encode.lisp 0000664 0000000 0000000 00000007315 12555317001 0016442 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri.encode
(:use :cl)
(:import-from :babel-encodings
:*default-character-encoding*)
(:export :url-encode
:url-encode-params))
(in-package :quri.encode)
(declaim (type (simple-array character (16)) +hexdigit-char+))
(defvar +hexdigit-char+
(let ((ary (make-array 16 :element-type 'character)))
(loop for char across "0123456789ABCDEF"
for i from 0
do (setf (aref ary i) char))
ary))
(defun integer-to-hexdigit (byte)
(declare (type (unsigned-byte 8) byte)
(optimize (speed 3) (safety 0)))
(let ((res (make-string 2)))
(multiple-value-bind (quotient remainder)
(floor byte 16)
(setf (aref res 0) (aref +hexdigit-char+ quotient)
(aref res 1) (aref +hexdigit-char+ remainder)))
res))
(defun unreservedp (byte)
(declare (type (unsigned-byte 8) byte)
(optimize (speed 3) (safety 0)))
(or (<= (char-code #\A) byte (char-code #\Z))
(<= (char-code #\a) byte (char-code #\z))
(<= (char-code #\0) byte (char-code #\9))
#.`(or ,@(loop for char across "-._~"
collect `(= byte ,(char-code char))))))
(declaim (type (simple-array string (97)) +byte-to-string+))
(defvar +byte-to-string+
(let ((ary (make-array 97 :element-type 'string :initial-element "")))
(loop for i from 0 to 96
unless (unreservedp i)
do (setf (aref ary i) (integer-to-hexdigit i)))
ary))
(defun url-encode (data &key
(encoding babel-encodings:*default-character-encoding*)
(start 0)
end
space-to-plus)
(declare (type (or string (simple-array (unsigned-byte 8) (*))) data)
(type integer start)
(optimize (speed 3) (safety 2)))
(let* ((octets (if (stringp data)
(babel:string-to-octets data :encoding encoding :start start :end end)
data))
(res (make-array (* (length octets) 3) :element-type 'character :fill-pointer t))
(i 0))
(declare (type (simple-array (unsigned-byte 8) (*)) octets)
(type string res)
(type integer i))
(loop for byte of-type (unsigned-byte 8) across octets do
(cond
((and space-to-plus
(= byte #.(char-code #\Space)))
(setf (aref res i) #\+)
(incf i))
((< byte #.(char-code #\a))
(locally (declare (optimize (speed 3) (safety 0)))
(let ((converted (aref +byte-to-string+ byte)))
(if (zerop (length converted))
(progn
(setf (aref res i) (code-char byte))
(incf i))
(progn
(setf (aref res i) #\%)
(incf i)
(replace res converted :start1 i)
(incf i 2))))))
((< byte 128)
(setf (aref res i) (code-char byte))
(incf i))
(T
(setf (aref res i) #\%)
(incf i)
(replace res (integer-to-hexdigit byte) :start1 i)
(incf i 2))))
(setf (fill-pointer res) i)
res))
(defun url-encode-params (params-alist &key (encoding babel-encodings:*default-character-encoding*)
space-to-plus)
(declare (optimize (speed 3)))
(check-type params-alist list)
(with-output-to-string (s)
(loop for ((field . value) . rest) on params-alist do
(write-string (url-encode field :encoding encoding :space-to-plus space-to-plus) s)
(when value
(write-char #\= s)
(write-string (url-encode value :encoding encoding :space-to-plus space-to-plus) s))
(when rest
(write-char #\& s)))))
quri-20150804-git/src/error.lisp 0000664 0000000 0000000 00000002047 12555317001 0016333 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri.error
(:use :cl)
(:export :uri-error
:uri-malformed-string
:uri-invalid-port
:url-decoding-error
:uri-malformed-urlencoded-string))
(in-package :quri.error)
(define-condition uri-error (error) ())
(define-condition uri-malformed-string (uri-error)
((data :initarg :data)
(position :initarg :position))
(:report (lambda (condition stream)
(with-slots (data position) condition
(format stream "URI ~S contains an illegal character ~S at position ~S."
data (aref data position) position)))))
(define-condition uri-invalid-port (uri-malformed-string)
()
(:report (lambda (condition stream)
(with-slots (data position) condition
(format stream "URI ~S contains an illegal character ~S at position ~S."
data (aref data position) position)))))
(define-condition url-decoding-error (uri-error) ())
(define-condition uri-malformed-urlencoded-string (uri-error) ())
quri-20150804-git/src/etld.lisp 0000664 0000000 0000000 00000006373 12555317001 0016140 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri.etld
(:use :cl)
(:import-from :alexandria
:starts-with-subseq
:ends-with-subseq)
(:export :parse-domain))
(in-package :quri.etld)
(defvar *default-etld-names*
(asdf:system-relative-pathname :quri #P"data/effective_tld_names.dat"))
(defvar *normal-tlds* nil)
(defvar *wildcard-tlds* nil)
(defvar *special-tlds* nil)
(defun load-etld-data (&optional (etld-names-file *default-etld-names*))
(with-open-file (in etld-names-file
:element-type #+lispworks :default #-lispworks 'character
:external-format #+clisp charset:utf-8 #-clisp :utf-8)
(loop with special-tlds = nil
with normal-tlds = (make-hash-table :test 'equal)
with wildcard-tlds = (make-hash-table :test 'equal)
for line = (read-line in nil nil)
while line
unless (or (= 0 (length line))
(starts-with-subseq "//" line))
do (cond
((starts-with-subseq "*" line)
(setf (gethash (subseq line 2) wildcard-tlds) t))
((starts-with-subseq "!" line)
(push (subseq line 1) special-tlds))
(t
(setf (gethash line normal-tlds) t)))
finally
(setf *special-tlds* special-tlds
*normal-tlds* normal-tlds
*wildcard-tlds* wildcard-tlds))))
(load-etld-data)
(defun next-subdomain (hostname &optional (start 0))
(let ((pos (position #\. hostname :start start)))
(when pos
(incf pos)
(values (subseq hostname pos)
pos))))
(defun make-subdomain-iter (hostname)
(let ((current-pos 0)
(first t))
(lambda ()
(block nil
(when first
(setq first nil)
(return hostname))
(multiple-value-bind (subdomain pos)
(next-subdomain hostname current-pos)
(when subdomain
(setf current-pos pos)
subdomain))))))
(defun parse-domain (hostname)
(dolist (tld *special-tlds*)
(when (ends-with-subseq tld hostname)
(if (= (length tld) (length hostname))
(return-from parse-domain hostname)
(when (char= (aref hostname (- (length hostname) (length tld) 1))
#\.)
(return-from parse-domain
(subseq hostname
(- (length hostname) (length tld))))))))
(loop with iter = (make-subdomain-iter hostname)
with pre-prev-subdomain = nil
with prev-subdomain = nil
for subdomain = (funcall iter)
while subdomain
if (gethash subdomain *wildcard-tlds*) do
(return pre-prev-subdomain)
else if (gethash subdomain *normal-tlds*) do
(return (if (string= subdomain hostname)
nil
prev-subdomain))
do (setf pre-prev-subdomain prev-subdomain
prev-subdomain subdomain)
finally
(let* ((pos (position #\. hostname :from-end t))
(pos (and pos
(position #\. hostname :from-end t :end pos))))
(return
(if pos
(subseq hostname (1+ pos))
hostname)))))
quri-20150804-git/src/parser.lisp 0000664 0000000 0000000 00000054604 12555317001 0016504 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri.parser
(:use :cl
:quri.error
:quri.util)
#+(or sbcl openmcl cmu allegro)
(:import-from #+sbcl :sb-cltl2
#+openmcl :ccl
#+cmu :ext
#+allegro :sys
:variable-information)
(:import-from :alexandria
:with-gensyms
:define-constant)
(:export :parse-uri
:parse-scheme
:parse-authority
:parse-path
:parse-query
:parse-fragment))
(in-package :quri.parser)
(deftype simple-byte-vector (&optional (len '*)) `(simple-array (unsigned-byte 8) (,len)))
(declaim (type (simple-array fixnum (128)) +uri-char+))
(define-constant +uri-char+
(let ((uri-char (make-array 128 :element-type 'fixnum :initial-element 0)))
(dotimes (i 128 uri-char)
(let ((char (code-char i)))
(when (or (alphanumericp char)
(char= char #\%)
(char= char #\:)
(char= char #\@)
(char= char #\-)
(char= char #\.)
(char= char #\_)
(char= char #\~)
(char= char #\!)
(char= char #\$)
(char= char #\&)
(char= char #\')
(char= char #\()
(char= char #\))
(char= char #\*)
(char= char #\+)
(char= char #\,)
(char= char #\;)
(char= char #\=))
(setf (aref uri-char i) 1)))))
:test 'equalp)
(defun parse-uri (data &key (start 0) end)
(etypecase data
(simple-string (parse-uri-string data :start start :end end))
(simple-byte-vector (parse-uri-byte-vector data :start start :end end))))
#+(or sbcl openmcl cmu allegro)
(define-compiler-macro parse-uri (&whole form &environment env data &key start end)
(declare (ignore start end))
(let ((type (cond
((constantp data) (type-of data))
((symbolp data) (cdr (assoc 'type (nth-value 2 (variable-information data env))))))))
(cond
((null type) form)
((subtypep type 'simple-string) `(parse-uri-string ,@(cdr form)))
((subtypep type 'simple-byte-vector) `(parse-uri-byte-vector ,@(cdr form)))
(T form))))
(defun parse-uri-string (data &key (start 0) end)
(declare (type simple-string data)
(optimize (speed 3) (safety 2)))
(let (scheme userinfo host port path query fragment
(parse-start start)
(parse-end (or end (length data))))
(declare (type fixnum parse-start parse-end))
(block nil
(flet ((parse-from-path (data start)
(declare (type simple-string data)
(type fixnum start))
(multiple-value-bind (data start end)
(parse-path-string data :start start)
(declare (type simple-string data)
(type fixnum start end))
(unless (= start end)
(setq path (subseq data start end)))
(multiple-value-bind (parsed-data path-start path-end)
(parse-query-string data :start end :end parse-end)
(when parsed-data
(setq query (subseq (the string parsed-data) (the fixnum path-start) (the fixnum path-end))))
(multiple-value-bind (data start end)
(parse-fragment-string data :start (or path-end end) :end parse-end)
(when data
(setq fragment (subseq (the string data) (the fixnum start) (the fixnum end)))))))))
(multiple-value-bind (parsed-data start end got-scheme)
(parse-scheme-string data :start parse-start :end parse-end)
(unless parsed-data
;; assume this is a relative uri.
(return (parse-from-path data parse-start)))
(locally (declare (type fixnum start end))
(setq scheme
(or got-scheme
(string-downcase (subseq data start end))))
(unless (= end parse-end)
(multiple-value-bind (parsed-data userinfo-start userinfo-end
host-start host-end port-start port-end)
(parse-authority-string data :start end :end parse-end)
(when parsed-data
(locally (declare (type fixnum host-start host-end))
(when userinfo-start
(setq userinfo (subseq (the string data) (the fixnum userinfo-start) (the fixnum userinfo-end))))
(unless (= host-start host-end)
(setq host (subseq data host-start host-end)))
(when port-start
(locally (declare (type fixnum port-start port-end))
(unless (= port-start port-end)
(handler-case
(setq port
(parse-integer data :start (the fixnum port-start) :end (the fixnum port-end)))
(error ()
(error 'uri-invalid-port
:data data :position port-start))))))))
(locally (declare (optimize (safety 0)))
(parse-from-path data (or port-end host-end (1+ end))))))))))
(values scheme userinfo host port path query fragment)))
(defun parse-uri-byte-vector (data &key (start 0) end)
(declare (type simple-byte-vector data)
(optimize (speed 3) (safety 2)))
(let (scheme userinfo host port path query fragment
(parse-start start)
(parse-end (or end (length data))))
(declare (type fixnum parse-start parse-end))
(flet ((subseq* (data &optional (start 0) end)
(declare (type simple-byte-vector data))
(values (babel:octets-to-string data :start start :end end)))
(parse-integer-from-bv (data &key (start 0) end)
(declare (type fixnum start end)
(optimize (speed 3) (safety 2)))
(when (= start end)
(return-from parse-integer-from-bv nil))
(do ((i start (1+ i))
(res 0))
((= i end) res)
(declare (type fixnum i res))
(let ((code (aref data i)))
(declare (type fixnum code)
#+sbcl (sb-ext:muffle-conditions sb-ext:compiler-note))
(unless (<= #.(char-code #\0) code #.(char-code #\9))
(error 'uri-invalid-port
:data data :position i))
(setq res (+ (* res 10)
(- code #.(char-code #\0))))))))
(block nil
(flet ((parse-from-path (data start)
(declare (type simple-byte-vector data)
(type fixnum start))
(multiple-value-bind (data start end)
(parse-path-byte-vector data :start start)
(declare (type fixnum start end))
(unless (= start end)
(setq path (subseq* data start end)))
(multiple-value-bind (parsed-data path-start path-end)
(parse-query-byte-vector data :start end :end parse-end)
(when parsed-data
(setq query (subseq* parsed-data (the fixnum path-start) (the fixnum path-end))))
(multiple-value-bind (data start end)
(parse-fragment-byte-vector data :start (or path-end end) :end parse-end)
(when data
(setq fragment (subseq* data (the fixnum start) (the fixnum end)))))))))
(multiple-value-bind (parsed-data start end got-scheme)
(parse-scheme-byte-vector data :start parse-start :end parse-end)
(unless parsed-data
;; assume this is a relative uri.
(return (parse-from-path data parse-start)))
(locally (declare (type fixnum start end))
(setq scheme
(or got-scheme
(let ((data-str (make-string (- end start))))
(do ((i start (1+ i))
(j 0 (1+ j)))
((= i end) data-str)
(let ((code (aref data i)))
(setf (aref data-str j)
(code-char
(if (<= #.(char-code #\A) code #.(char-code #\Z))
(+ code 32)
code))))))))
(unless (= end parse-end)
(multiple-value-bind (parsed-data userinfo-start userinfo-end
host-start host-end port-start port-end)
(parse-authority-byte-vector data :start end :end parse-end)
(when parsed-data
(locally (declare (type simple-byte-vector data)
(type fixnum host-start host-end))
(when userinfo-start
(setq userinfo (subseq* data (the fixnum userinfo-start) (the fixnum userinfo-end))))
(unless (= host-start host-end)
(setq host (subseq* data host-start host-end)))
(when port-start
(setq port
(parse-integer-from-bv data :start port-start :end port-end)))))
(locally (declare (optimize (safety 0)))
(parse-from-path data (or port-end host-end (1+ end)))))))))))
(values scheme userinfo host port path query fragment)))
(defmacro defun-with-array-parsing (name (char p data start end &rest other-args) &body body)
(with-gensyms (args type form env)
(let ((fn-for-string (intern (format nil "~A-~A" name :string)))
(fn-for-byte-vector (intern (format nil "~A-~A" name :byte-vector))))
`(progn
(defun ,name (,data &rest ,args &key ,start ,end)
(declare (ignore ,start ,end))
(etypecase ,data
(simple-string (apply ',(intern (format nil "~A-~A" name :string)) data ,args))
(simple-byte-vector (apply ',(intern (format nil "~A-~A" name :byte-vector)) data ,args))))
#+(or sbcl openmcl cmu allegro)
(define-compiler-macro ,name (&whole ,form &environment ,env ,data &rest ,args)
(declare (ignore ,args))
(let ((,type (cond
((constantp ,data) (type-of ,data))
((symbolp ,data) (cdr (assoc 'type (nth-value 2 (variable-information ,data ,env))))))))
(cond
((null ,type) ,form)
((subtypep ,type 'simple-string) `(,',fn-for-string ,@(cdr ,form)))
((subtypep ,type 'simple-byte-vector) `(,',fn-for-byte-vector ,@(cdr ,form)))
(T ,form))))
(defun ,fn-for-string (,data &key (,start 0) (,end (length ,data)) ,@other-args)
(declare (type simple-string ,data)
(type fixnum ,start ,end)
(optimize (speed 3) (safety 2)))
(macrolet ((char=* (char1 char2)
`(char= ,char1 ,char2))
(char-code* (char)
`(char-code ,char))
(scheme-char-p* (char)
`(scheme-char-p ,char))
(standard-alpha-char-p* (char)
`(standard-alpha-char-p ,char)))
(block ,name
(with-string-parsing (,char ,p ,data ,start ,end)
(declare (type fixnum ,p))
,@body))))
(defun ,fn-for-byte-vector (,data &key (,start 0) (,end (length ,data)) ,@other-args)
(declare (type simple-byte-vector ,data)
(type fixnum ,start ,end)
(optimize (speed 3) (safety 2)))
(macrolet ((char=* (byte char)
`(= ,byte ,(char-code char)))
(char-code* (byte)
byte)
(scheme-char-p* (byte)
`(scheme-byte-p ,byte))
(standard-alpha-char-p* (byte)
`(standard-alpha-byte-p ,byte)))
(block ,name
(with-byte-array-parsing (,char ,p ,data ,start ,end)
(declare (type fixnum ,p))
,@body))))))))
(defun scheme-char-p (char)
(declare (type character char)
(optimize (speed 3) (safety 0)))
(or (standard-alphanumeric-p char)
(char= char #\+)
(char= char #\-)
(char= char #\.)))
(defun scheme-byte-p (byte)
(declare (type (unsigned-byte 8) byte)
(optimize (speed 3) (safety 0)))
(or (standard-alphanumeric-byte-p byte)
(= byte (char-code #\+))
(= byte (char-code #\-))
(= byte (char-code #\.))))
(defun-with-array-parsing parse-scheme (char p data start end)
(parsing-scheme-start
(when (or (char=* char #\h)
(char=* char #\H))
(goto parsing-H))
(unless (standard-alpha-char-p* char)
(return-from parse-scheme nil))
(gonext))
(parsing-scheme
(cond
((char=* char #\:)
(return-from parse-scheme
(values data start p)))
((scheme-char-p* char)
(redo))
(T
(return-from parse-scheme nil))))
(parsing-H
(if (or (char=* char #\t)
(char=* char #\T))
(goto parsing-HT)
(goto parsing-scheme 0)))
(parsing-HT
(if (or (char=* char #\t)
(char=* char #\T))
(goto parsing-HTT)
(goto parsing-scheme 0)))
(parsing-HTT
(if (or (char=* char #\p)
(char=* char #\P))
(goto parsing-HTTP)
(goto parsing-scheme 0)))
(parsing-HTTP
(cond
((char=* char #\:)
(return-from parse-scheme
(values data start p "http")))
((or (char=* char #\s)
(char=* char #\S))
(goto parsing-HTTPS))
(T (goto parsing-scheme 0))))
(parsing-HTTPS
(if (char=* char #\:)
(return-from parse-scheme
(values data start p "https"))
(goto parsing-scheme 0)))
(:eof (return-from parse-scheme nil)))
(defun-with-array-parsing parse-authority (char p data start end
&aux
(authority-mark nil)
(colon-mark nil)
userinfo-start
userinfo-end
host-start
host-end
port-start
port-end)
(parsing-first
(cond
((char=* char #\:)
(incf start)
(redo))
((char=* char #\/)
(gonext))
(T
(return-from parse-authority
(values data nil nil start start nil nil)))))
(parsing-authority-starting
(unless (char=* char #\/)
(error 'uri-malformed-string :data data :position p))
(gonext))
(parsing-authority-start
(setq authority-mark p)
(if (char=* char #\[)
(goto parsing-ipliteral)
(gonext 0)))
;; parsing host or userinfo
(parsing-authority
(cond
((char=* char #\:)
(setq colon-mark p)
(redo))
((char=* char #\@)
(when userinfo-start
(error 'uri-malformed-string :data data :position p))
(setq userinfo-start authority-mark
userinfo-end p)
(setq authority-mark (1+ p)
colon-mark nil)
(redo))
((or (char=* char #\/)
(char=* char #\?)
(char=* char #\#))
(go :eof))
((= (aref +uri-char+ (char-code* char)) 1)
(redo))
(T (error 'uri-malformed-string
:data data :position p))))
(parsing-ipliteral
(if (char=* char #\])
(goto parsing-authority)
(redo)))
(:eof
(unless authority-mark
(return-from parse-authority))
(if colon-mark
(setq host-start authority-mark
host-end colon-mark
port-start (1+ colon-mark)
port-end p)
(setq host-start authority-mark
host-end p))
(return-from parse-authority
(values data
userinfo-start userinfo-end
host-start host-end
port-start port-end))))
(defun path-char-p (char)
(declare (type character char)
(optimize (speed 3) (safety 0)))
(or (= (aref +uri-char+ (char-code char)) 1)
(char= char #\/)))
(defun path-byte-p (byte)
(declare (type (unsigned-byte 8) byte)
(optimize (speed 3) (safety 0)))
(or (= (aref +uri-char+ byte) 1)
(= byte (char-code #\/))))
(defun query-char-p (char)
(declare (type character char)
(optimize (speed 3) (safety 0)))
(or (path-char-p char)
(char= char #\?)))
(defun query-byte-p (byte)
(declare (type (unsigned-byte 8) byte)
(optimize (speed 3) (safety 0)))
(or (path-byte-p byte)
(= byte (char-code #\?))))
(defmacro parse-until-string (delimiters data &key start end test)
(with-gensyms (p char)
`(block nil
(progn
(do ((,p ,start (1+ ,p)))
((= ,p ,end)
(values ,data ,start ,end))
(declare (type fixnum ,p))
(let ((,char (aref ,data ,p)))
(declare (type character ,char))
(when (or ,@(loop for delim in delimiters
collect `(char= ,delim ,char)))
(return (values ,data ,start ,p)))
,@(when test
`((unless (funcall ,test ,char)
(error 'uri-malformed-string
:data ,data :position ,p))))))))))
(defmacro parse-until-byte-vector (delimiters data &key start end test)
(with-gensyms (p byte)
`(block nil
(progn
(do ((,p ,start (1+ ,p)))
((= ,p ,end)
(values ,data ,start ,end))
(declare (type fixnum ,p))
(let ((,byte (aref ,data ,p)))
(declare (type (unsigned-byte 8) ,byte))
(when (or ,@(loop for delim in delimiters
collect `(= ,(char-code delim) ,byte)))
(return (values ,data ,start ,p)))
,@(when test
`((unless (funcall ,test ,byte)
(error 'uri-malformed-string
:data ,data :position ,p))))))))))
(defun parse-path (data &key (start 0) (end (length data)))
(etypecase data
(simple-string
(parse-path-string data :start start :end end))
(simple-byte-vector
(parse-path-byte-vector data :start start :end end))))
(defun parse-path-string (data &key (start 0) (end (length data)))
(declare (type simple-string data)
(optimize (speed 3) (safety 2))
#+sbcl (sb-ext:muffle-conditions sb-ext:compiler-note))
(parse-until-string (#\? #\#) data :start start :end end :test #'path-char-p))
(defun parse-path-byte-vector (data &key (start 0) (end (length data)))
(declare (type simple-byte-vector data)
(optimize (speed 3) (safety 2))
#+sbcl (sb-ext:muffle-conditions sb-ext:compiler-note))
(parse-until-byte-vector (#\? #\#) data :start start :end end :test #'path-byte-p))
(defun parse-query (data &key (start 0) (end (length data)))
(etypecase data
(string
(parse-query-string data :start start :end end))
(simple-byte-vector
(parse-query-byte-vector data :start start :end end))))
#+(or sbcl openmcl cmu allegro)
(define-compiler-macro parse-query (&whole form &environment env data &key start end)
(declare (ignore start end))
(let ((type (cond
((constantp data) (type-of data))
((symbolp data) (cdr (assoc 'type (nth-value 2 (variable-information data env))))))))
(cond
((null type) form)
((subtypep type 'simple-string) `(parse-query-string ,@(cdr form)))
((subtypep type 'simple-byte-vector) `(parse-query-byte-vector ,@(cdr form)))
(T form))))
(defun parse-query-string (data &key (start 0) (end (length data)))
(declare (type simple-string data)
(type fixnum start end)
(optimize (speed 3) (safety 2)))
(let ((?-pos (position #\? data :start start :end end)))
(when ?-pos
(parse-until-string (#\#) data :start (1+ (the fixnum ?-pos)) :end end :test #'query-char-p))))
(defun parse-query-byte-vector (data &key (start 0) (end (length data)))
(declare (type simple-byte-vector data)
(type fixnum start end)
(optimize (speed 3) (safety 2)))
(let ((?-pos (position #.(char-code #\?) data :start start :end end)))
(when ?-pos
(parse-until-byte-vector (#\#) data :start (1+ (the fixnum ?-pos)) :end end :test #'query-byte-p))))
(defun parse-fragment (data &key (start 0) (end (length data)))
(etypecase data
(string (parse-fragment-string data :start start :end end))
(simple-byte-vector (parse-fragment-byte-vector data :start start :end end))))
#+(or sbcl openmcl cmu allegro)
(define-compiler-macro parse-fragment (&whole form &environment env data &key start end)
(declare (ignore start end))
(let ((type (cond
((constantp data) (type-of data))
((symbolp data) (cdr (assoc 'type (nth-value 2 (variable-information data env))))))))
(cond
((null type) form)
((subtypep type 'simple-string) `(parse-fragment-string ,@(cdr form)))
((subtypep type 'simple-byte-vector) `(parse-fragment-byte-vector ,@(cdr form)))
(T form))))
(defun parse-fragment-string (data &key (start 0) (end (length data)))
(declare (type simple-string data)
(type fixnum start end)
(optimize (speed 3) (safety 2)))
(let ((|#-pos| (position #\# data
:start start
:end end)))
(when |#-pos|
(values data (1+ (the fixnum |#-pos|)) end))))
(defun parse-fragment-byte-vector (data &key (start 0) (end (length data)))
(declare (type simple-byte-vector data)
(type fixnum start end)
(optimize (speed 3) (safety 2)))
(let ((|#-pos| (position #\# data
:start start
:end end
:key #'code-char)))
(when |#-pos|
(values data (1+ (the fixnum |#-pos|)) end))))
quri-20150804-git/src/port.lisp 0000664 0000000 0000000 00000000651 12555317001 0016165 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri.port
(:use :cl)
(:import-from :alexandria
:plist-hash-table)
(:export :scheme-default-port))
(in-package :quri.port)
(defvar +default-ports+
(plist-hash-table
'("ftp" 21
"ssh" 22
"telnet" 23
"http" 80
"ldap" 389
"https" 443
"ldaps" 636)
:test 'equal))
(defun scheme-default-port (scheme)
(gethash scheme +default-ports+))
quri-20150804-git/src/quri.lisp 0000664 0000000 0000000 00000017020 12555317001 0016157 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri
(:use :cl
:quri.uri
:quri.uri.ftp
:quri.uri.http
:quri.uri.ldap
:quri.uri.file
:quri.error)
(:import-from :quri.domain
:uri-tld
:uri-domain
:ipv4-addr-p
:ipv6-addr-p
:ip-addr-p
:ip-addr=
:cookie-domain-p)
(:import-from :quri.parser
:parse-uri
:parse-scheme
:parse-authority
:parse-path
:parse-query
:parse-fragment)
(:import-from :quri.port
:scheme-default-port)
(:import-from :quri.decode
:url-decode
:url-decode-params)
(:import-from :quri.encode
:url-encode
:url-encode-params)
(:import-from :split-sequence :split-sequence)
(:export :parse-uri
:parse-scheme
:parse-authority
:parse-path
:parse-query
:parse-fragment
:make-uri
:uri
:uri=
:uri-p
:uri-scheme
:uri-userinfo
:uri-host
:uri-port
:uri-path
:uri-query
:uri-fragment
:uri-authority
:uri-tld
:uri-domain
:ipv4-addr-p
:ipv6-addr-p
:ip-addr-p
:ip-addr=
:cookie-domain-p
:urn
:urn-p
:urn-nid
:urn-nss
:uri-ftp
:uri-ftp-p
:uri-ftp-typecode
:uri-http
:uri-http-p
:uri-query-params
:uri-ldap
:uri-ldap-p
:uri-ldap-dn
:uri-ldap-attributes
:uri-ldap-scope
:uri-ldap-filter
:uri-ldap-extensions
:uri-file
:uri-file-p
:uri-file-pathname
:copy-uri
:render-uri
:merge-uris
:url-decode
:url-decode-params
:url-encode
:url-encode-params
:uri-error
:uri-malformed-string
:uri-invalid-port
:url-decoding-error
:uri-malformed-urlencoded-string))
(in-package :quri)
(defun scheme-constructor (scheme)
"Get a constructor function appropriate for the scheme."
(cond
((string= scheme "http") #'make-uri-http)
((string= scheme "https") #'make-uri-https)
((string= scheme "ldap") #'make-uri-ldap)
((string= scheme "ldaps") #'make-uri-ldaps)
((string= scheme "ftp") #'make-uri-ftp)
((string= scheme "file") #'make-uri-file)
((string= scheme "urn") #'make-urn)
(T #'make-basic-uri)))
(defun uri (data &key (start 0) end)
(if (uri-p data)
data
(multiple-value-bind (scheme userinfo host port path query fragment)
(parse-uri data :start start :end end)
(apply (scheme-constructor scheme)
:scheme scheme
:userinfo userinfo
:host host
:path path
:query query
:fragment fragment
(and port
`(:port ,port))))))
(defun copy-uri (uri &key
(scheme (uri-scheme uri))
(userinfo (uri-userinfo uri))
(host (uri-host uri))
(port (uri-port uri))
(path (uri-path uri))
(query (uri-query uri))
(fragment (uri-fragment uri)))
(make-uri :scheme scheme
:userinfo userinfo
:host host
:port port
:path path
:query query
:fragment fragment))
(defun make-uri (&rest initargs &key scheme userinfo host port path query fragment)
(declare (ignore userinfo host port path query fragment))
(apply (scheme-constructor scheme) initargs))
(defun render-uri (uri &optional stream)
(cond
((uri-ftp-p uri)
(format stream
"~@[~(~A~):~]~@[//~(~A~)~]~@[~A~]~@[;type=~A~]~@[?~A~]~@[#~A~]"
(uri-scheme uri)
(uri-authority uri)
(uri-path uri)
(uri-ftp-typecode uri)
(uri-query uri)
(uri-fragment uri)))
((uri-file-p uri)
(format stream
"~@[~(~A~)://~]~@[~(~a~)~]"
(uri-scheme uri)
(uri-path uri)))
(T
(format stream
"~@[~(~A~):~]~@[//~(~A~)~]~@[~A~]~@[?~A~]~@[#~A~]"
(uri-scheme uri)
(uri-authority uri)
(uri-path uri)
(uri-query uri)
(uri-fragment uri)))))
(defun uri= (uri1 uri2)
(check-type uri1 uri)
(check-type uri2 uri)
(when (eq (type-of uri1) (type-of uri2))
(and (equalp (uri-scheme uri1) (uri-scheme uri2))
(equal (uri-path uri1) (uri-path uri2))
(equal (uri-query uri1) (uri-query uri2))
(equal (uri-fragment uri1) (uri-fragment uri2))
(equalp (uri-authority uri1) (uri-authority uri2))
(or (not (uri-ftp-p uri1))
(eql (uri-ftp-typecode uri1) (uri-ftp-typecode uri2))))))
(defmethod print-object ((uri uri) stream)
(format stream "#<~S ~A>"
(type-of uri)
(render-uri uri)))
(defun merge-uri-paths (ref-path base-path)
(declare (type (or string null) ref-path base-path))
(let* ((path-list (and base-path (nreverse (split-sequence #\/ base-path))))
(ref-components (and ref-path (split-sequence #\/ ref-path)))
ending-slash-p)
;; remove last component of base
(pop path-list)
(dolist (component ref-components)
(cond ((string= ".." component)
(pop path-list)
(setf ending-slash-p t))
((string= "." component)
(setf ending-slash-p t))
(t
(push component path-list)
(setf ending-slash-p nil))))
(setf path-list (nreverse path-list))
(with-output-to-string (s)
(loop for (component . more) on path-list
do (progn
(write-string component s)
(when (or more ending-slash-p)
(write-char #\/ s)))))))
(defun merge-uris (reference base)
(declare (uri reference base))
"Merge a reference URI into the base URI as described in RFC 2396 Section 5.2.
The returned URI may or may not be a new instance. Neither REFERENCE nor BASE is
mutated."
;; Step 2 -- return base if same document
(when (uri= reference base)
(return-from merge-uris base))
;; Step 3 -- scheme
(when (uri-scheme reference)
(return-from merge-uris reference))
(let ((uri (copy-uri reference :scheme (uri-scheme base))))
(when (null (uri-port uri))
(setf (uri-port uri) (scheme-default-port (uri-scheme uri))))
(macrolet ((done () '(return-from merge-uris uri)))
;; Step 4 -- Authority
(when (uri-host uri)
(done))
(setf (uri-userinfo uri) (uri-userinfo base))
(setf (uri-host uri) (uri-host base))
(setf (uri-port uri) (uri-port base))
;; Step 5 -- Empty path
(when (null (uri-path uri))
(setf (uri-path uri) (uri-path base))
(done))
;; Step 6 -- Absolute path
(alexandria:when-let* ((p (uri-path uri))
(first-char (and (> (length p) 0) (char p 0))))
(when (char= #\/ first-char)
(done)))
;; Step 7 -- Relative path
(setf (uri-path uri) (merge-uri-paths (uri-path uri) (uri-path base)))
;; Step 8 -- Finish
(done))))
quri-20150804-git/src/uri.lisp 0000664 0000000 0000000 00000003463 12555317001 0016004 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri.uri
(:use :cl)
(:import-from :quri.port
:scheme-default-port)
(:export :uri
:make-basic-uri
:uri-p
:uri-scheme
:uri-userinfo
:uri-host
:uri-port
:uri-path
:uri-query
:uri-fragment
:uri-authority
:urn
:make-urn
:urn-p
:urn-nid
:urn-nss))
(in-package :quri.uri)
(defstruct (uri (:constructor %make-uri))
scheme
userinfo
host
port
path
query
fragment)
(defun make-basic-uri (&key scheme userinfo host port path query fragment)
(let ((uri (%make-uri :scheme scheme
:userinfo userinfo
:host host
:port port
:path path
:query query
:fragment fragment)))
(unless (uri-port uri)
(setf (uri-port uri)
(scheme-default-port (uri-scheme uri))))
uri))
(defun uri-authority (uri)
(when (uri-host uri)
(let ((default-port (scheme-default-port (uri-scheme uri))))
(format nil "~:[~;~:*~A@~]~A~:[:~A~;~*~]"
(uri-userinfo uri)
(uri-host uri)
(eql (uri-port uri) default-port)
(uri-port uri)))))
(defstruct (urn (:include uri (scheme :urn))
(:constructor %make-urn))
nid
nss)
(defun make-urn (&rest initargs)
(let ((urn (apply #'%make-urn initargs)))
(when (uri-path urn)
(let ((colon-pos (position #\: (uri-path urn))))
(if colon-pos
(setf (urn-nid urn) (subseq (uri-path urn) 0 colon-pos)
(urn-nss urn) (subseq (uri-path urn) (1+ colon-pos)))
(setf (urn-nid urn) (uri-path urn)))))
urn))
quri-20150804-git/src/uri/ 0000775 0000000 0000000 00000000000 12555317001 0015105 5 ustar 00root root 0000000 0000000 quri-20150804-git/src/uri/file.lisp 0000664 0000000 0000000 00000001205 12555317001 0016713 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri.uri.file
(:use :cl)
(:import-from :quri.uri
:uri
:scheme
:port
:uri-path)
(:export :uri-file
:uri-file-p
:make-uri-file
:uri-file-pathname))
(in-package :quri.uri.file)
(defstruct (uri-file (:include uri (scheme "file") (port nil))))
(declaim (ftype (function (uri-file) pathname) uri-file-pathname))
(defun uri-file-pathname (file)
"Get a lisp pathname object from a file URI.
Assumes that the path of the file URI is correct path syntax for the environment."
(parse-namestring (uri-path file)))
quri-20150804-git/src/uri/ftp.lisp 0000664 0000000 0000000 00000002437 12555317001 0016575 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri.uri.ftp
(:use :cl)
(:import-from :quri.uri
:uri
:scheme
:port
:uri-path)
(:import-from :quri.port
:scheme-default-port)
(:export :uri-ftp
:uri-ftp-p
:uri-ftp-typecode
:make-uri-ftp))
(in-package :quri.uri.ftp)
(defstruct (uri-ftp (:include uri (scheme "ftp") (port #.(scheme-default-port "ftp")))
(:constructor %make-uri-ftp))
typecode)
(defun make-uri-ftp (&rest initargs)
(let ((ftp (apply #'%make-uri-ftp initargs)))
(multiple-value-bind (path typecode)
(parse-ftp-typecode (uri-path ftp))
(when path
(setf (uri-path ftp) path
(uri-ftp-typecode ftp) typecode)))
ftp))
(defun parse-ftp-typecode (path)
(let ((len (length path)))
(when (and (< #.(length ";type=") len)
(string= path ";type="
:start1 (- len 1 #.(length ";type="))
:end1 (1- len)))
(let ((typecode (aref path (1- len))))
(when (or (char= typecode #\a)
(char= typecode #\i)
(char= typecode #\d))
(values (subseq path 0 (- len #.(1+ (length ";type="))))
typecode))))))
quri-20150804-git/src/uri/http.lisp 0000664 0000000 0000000 00000002001 12555317001 0016746 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri.uri.http
(:use :cl)
(:import-from :quri.uri
:uri
:scheme
:port
:uri-query)
(:import-from :quri.port
:scheme-default-port)
(:import-from :quri.encode
:url-encode-params)
(:import-from :quri.decode
:url-decode-params)
(:import-from :alexandria
:when-let)
(:export :uri-http
:make-uri-http
:uri-http-p
:uri-https
:make-uri-https
:uri-https-p
:uri-query-params))
(in-package :quri.uri.http)
(defstruct (uri-http (:include uri (scheme "http") (port #.(scheme-default-port "http")))))
(defstruct (uri-https (:include uri-http (scheme "https") (port #.(scheme-default-port "https")))))
(defun uri-query-params (http)
(when-let (query (uri-query http))
(url-decode-params query)))
(defun (setf uri-query-params) (new http)
(setf (uri-query http) (url-encode-params new)))
quri-20150804-git/src/uri/ldap.lisp 0000664 0000000 0000000 00000005020 12555317001 0016713 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri.uri.ldap
(:use :cl)
(:import-from :quri.uri
:uri
:scheme
:port
:uri-path
:uri-query)
(:import-from :quri.port
:scheme-default-port)
(:import-from :split-sequence
:split-sequence)
(:import-from :alexandria
:when-let)
(:export :uri-ldap
:make-uri-ldap
:uri-ldap-p
:uri-ldaps
:make-uri-ldaps
:uri-ldaps-p
:uri-ldap-dn
:uri-ldap-attributes
:uri-ldap-scope
:uri-ldap-filter
:uri-ldap-extensions))
(in-package :quri.uri.ldap)
(defstruct (uri-ldap (:include uri (scheme "ldap") (port #.(scheme-default-port "ldap")))))
(defstruct (uri-ldaps (:include uri-ldap (scheme "ldaps") (port #.(scheme-default-port "ldaps")))))
(defun uri-ldap-dn (ldap)
(let ((path (uri-path ldap)))
(when (and path
(/= 0 (length path)))
(if (char= (aref path 0) #\/)
(subseq path 1)
path))))
(defun (setf uri-ldap-dn) (new ldap)
(setf (uri-path ldap)
(concatenate 'string "/" new))
new)
(defun nth-uri-ldap-lists (ldap n)
(check-type ldap uri-ldap)
(when-let (query (uri-query ldap))
(car (last (split-sequence #\? query :count n)))))
(defun (setf nth-uri-ldap-lists) (new ldap n)
(check-type ldap uri-ldap)
(check-type new string)
(let ((query (uri-query ldap)))
(setf (uri-query ldap)
(if query
(let ((parts (split-sequence #\? query)))
(with-output-to-string (s)
(dotimes (i n)
(princ (or (pop parts) "") s)
(write-char #\? s))
(princ new s)
(pop parts) ;; ignore
(dolist (part parts)
(write-char #\? s)
(princ part s))))
new))))
(defun uri-ldap-attributes (ldap)
(nth-uri-ldap-lists ldap 1))
(defun (setf uri-ldap-attributes) (new ldap)
(setf (nth-uri-ldap-lists ldap 0) new))
(defun uri-ldap-scope (ldap)
(nth-uri-ldap-lists ldap 2))
(defun (setf uri-ldap-scope) (new ldap)
(setf (nth-uri-ldap-lists ldap 1) new))
(defun uri-ldap-filter (ldap)
(nth-uri-ldap-lists ldap 3))
(defun (setf uri-ldap-filter) (new ldap)
(setf (nth-uri-ldap-lists ldap 2) new))
(defun uri-ldap-extensions (ldap)
(nth-uri-ldap-lists ldap 4))
(defun (setf uri-ldap-extensions) (new ldap)
(setf (nth-uri-ldap-lists ldap 3) new))
quri-20150804-git/src/util.lisp 0000664 0000000 0000000 00000011621 12555317001 0016155 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri.util
(:use :cl)
(:import-from :alexandria
:with-gensyms)
(:export :standard-alpha-char-p
:standard-alpha-byte-p
:standard-alphanumeric-p
:standard-alphanumeric-byte-p
:with-array-parsing
:with-string-parsing
:with-byte-array-parsing
:redo
:gonext
:goto))
(in-package :quri.util)
(defun standard-alpha-char-p (char)
(declare (type character char)
(optimize (speed 3) (safety 0)))
(standard-alpha-byte-p (char-code char)))
(defun standard-alpha-byte-p (byte)
(declare (type (unsigned-byte 8) byte)
(optimize (speed 3) (safety 0)))
(or (<= #.(char-code #\A) byte #.(char-code #\Z))
(<= #.(char-code #\a) byte #.(char-code #\z))))
(defun standard-alphanumeric-p (char)
(declare (type character char)
(optimize (speed 3) (safety 0)))
(or (digit-char-p char)
(standard-alpha-char-p char)))
(defun standard-alphanumeric-byte-p (byte)
(declare (type (unsigned-byte 8) byte)
(optimize (speed 3) (safety 0)))
(or (<= #.(char-code #\0) byte #.(char-code #\9))
(standard-alpha-byte-p byte)))
(define-condition parsing-end-unexpectedly (simple-error)
((state :initarg :state
:initform nil))
(:report (lambda (condition stream)
(format stream "Parsing ended unexpectedly~:[~;~:* at ~A~]"
(slot-value condition 'state)))))
(define-condition no-next-state (simple-error) ())
(defmacro with-string-parsing ((elem p seq &optional (start 0) end key) &body body)
`(let ((,elem #\Nul))
(declare (type character ,elem))
(%with-array-parsing (,elem ,p ,seq ,start ,end ,key) ,@body)))
(defmacro with-byte-array-parsing ((elem p seq &optional (start 0) end key) &body body)
`(let ((,elem 0))
(declare (type (unsigned-byte 8) ,elem))
(%with-array-parsing (,elem ,p ,seq ,start ,end ,key) ,@body)))
(defmacro with-array-parsing ((elem p seq &optional (start 0) end key) &body body)
`(let (,elem)
(%with-array-parsing (,elem ,p ,seq ,start ,end ,key) ,@body)))
(defmacro %with-array-parsing ((elem p seq &optional (start 0) end key) &body body)
(with-gensyms (g-end no-next-state last key-fn)
(let ((eof-exists nil))
`(let (,@(and key `((,key-fn ,key)))
(,p ,start)
(,g-end (locally (declare #+sbcl (sb-ext:muffle-conditions sb-ext:compiler-note))
(or ,end (length ,seq)))))
(declare (ignorable ,p ,g-end))
,@(loop for (exp . rest) on body
while (and (listp exp) (eq (car exp) 'declare))
collect exp
do (setq body rest))
(macrolet ((goto (tag &optional (amount 1))
`(locally (declare (optimize (speed 3) (safety 0)))
(incf ,',p ,amount)
,@(if (eql amount 0)
()
`((when (= ,',p ,',g-end)
(go :eof))
(setq ,',elem
,',(if key
`(if ,key-fn
(funcall ,key-fn (aref ,seq ,p))
(aref ,seq ,p))
`(aref ,seq ,p)))))
(go ,tag))))
(tagbody
(when (= ,p ,g-end)
(go :eof))
(locally (declare (optimize (speed 3) (safety 0)))
(setq ,elem ,@(if key
`((if ,key-fn
(funcall ,key-fn (aref ,seq ,p))
(aref ,seq ,p)))
`((aref ,seq ,p)))))
,@(loop for (tagpart . rest) on body
for (tag . part) = tagpart
if (eq tag :eof)
append (progn
(setf eof-exists t)
`(,@tagpart
(go ,last)))
else
append
(list tag
`(macrolet ((redo (&optional (amount 1))
`(goto ,',tag ,amount))
(gonext (&optional (amount 1))
`(goto ,',(or (caar rest) no-next-state)
,amount)))
,@part
(error 'parsing-end-unexpectedly :state ',tag))))
,no-next-state
(error 'no-next-state)
,@(if eof-exists
()
'(:eof))
,last))))))
quri-20150804-git/t/ 0000775 0000000 0000000 00000000000 12555317001 0013762 5 ustar 00root root 0000000 0000000 quri-20150804-git/t/benchmark.lisp 0000664 0000000 0000000 00000001001 12555317001 0016575 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri-test.benchmark
(:use :cl
:quri)
(:export :run-benchmark))
(in-package :quri-test.benchmark)
(defun run-benchmark ()
(format t "~2 QURI:URI~2%")
(time
(dotimes (i 100000)
(quri:uri "http://www.ics.uci.edu/pub/ietf/uri/#Related")))
(format t "~2 QURI:URL-DECODE~2%")
(time
(dotimes (i 100000)
(quri:url-decode "/foo%E3%81%82")))
(format t "~2 QURI:URL-ENCODE~2%")
(time
(dotimes (i 100000)
(quri:url-encode "/fooあ"))))
quri-20150804-git/t/decode.lisp 0000664 0000000 0000000 00000001322 12555317001 0016074 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri-test.decode
(:use :cl
:quri.decode
:prove))
(in-package :quri-test.decode)
(plan 6)
(is (url-decode-params "a=b&c=d")
'(("a" . "b") ("c" . "d"))
"normal case")
(is (url-decode-params "a=b&c=d&e")
'(("a" . "b") ("c" . "d") ("e"))
"field only")
(is-error (url-decode-params "a=b=c")
'quri:uri-malformed-urlencoded-string
"Raise a malformed error")
(is (url-decode-params "a=b=c" :lenient t)
'(("a" . "b=c"))
":lenient t")
(is-error (url-decode-params "a=%!@#&b=1")
'quri:url-decoding-error
"Raise a decoding error")
(is (url-decode-params "a=%!@#&b=1" :lenient t)
'(("b" . "1")))
(finalize)
quri-20150804-git/t/domain.lisp 0000664 0000000 0000000 00000006666 12555317001 0016140 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri-test.domain
(:use :cl
:quri.domain
:prove))
(in-package :quri-test.domain)
(plan nil)
(subtest "ipv4-addr-p"
(ok (ipv4-addr-p "127.0.0.1")
"127.0.0.1 is valid")
(ok (ipv4-addr-p "255.255.255.255")
"255.255.255.255 is valid")
(ok (not (ipv4-addr-p "256.255.255.255"))
"256.255.255.255 is not valid")
(ok (not (ipv4-addr-p "345.23.1.0"))
"345.23.1.0 is not valid")
(ok (not (ipv4-addr-p "127.0"))
"127.0 is not valid")
(ok (not (ipv4-addr-p "127.0.0.0.1"))
"127.0.0.0.1 is not valid")
(ok (not (ipv4-addr-p "2ch.net"))
"2ch.net is not valid")
(ok (not (ipv4-addr-p "127..0.1"))
"127..0.1 is not valid")
(ok (not (ipv4-addr-p "..."))
"... is not valid"))
(subtest "ipv6-addr-p"
(ok (ipv6-addr-p "2001:0db8:bd05:01d2:288a:1fc0:0001:10ee"))
(ok (ipv6-addr-p "2001:db8:20:3:1000:100:20:3"))
(ok (ipv6-addr-p "2001:db8::1234:0:0:9abc"))
(ok (ipv6-addr-p "2001:db8::9abc"))
(ok (ipv6-addr-p "::1")))
(subtest "ip-addr="
(is (ip-addr= "127.0.0.1" "127.0.0.1") t)
(is (ip-addr= "127.0.0.1" "127.0.0.2") nil)
(is (ip-addr= "127.0.0.1" "localhost") nil)
(is (ip-addr= "::1" "0:0:0:0:0:0:0:1") t)
(is (ip-addr= "[::1]" "0:0:0:0:0:0:0:1") t)
(is (ip-addr= "[::1]" "0:0:0:0:0:0:0:2") nil))
(subtest "cookie-domain-p"
(is (cookie-domain-p "com" "com") nil)
(is (cookie-domain-p "com" "example.com") nil)
(is (cookie-domain-p "com" "foo.example.com") nil)
(is (cookie-domain-p "com" "bar.foo.example.com") nil)
(is (cookie-domain-p "example.com" "com") nil)
(is (cookie-domain-p "example.com" "example.com") t)
(is (cookie-domain-p "example.com" "foo.example.com") nil)
(is (cookie-domain-p "example.com" "bar.foo.example.com") nil)
(is (cookie-domain-p "foo.example.com" "com") nil)
(is (cookie-domain-p "foo.example.com" "example.com") t)
(is (cookie-domain-p "foo.example.com" "foo.example.com") t)
(is (cookie-domain-p "foo.example.com" "bar.foo.example.com") nil)
(is (cookie-domain-p "b.sapporo.jp" "jp") nil)
(is (cookie-domain-p "b.sapporo.jp" "sapporo.jp") nil)
(is (cookie-domain-p "b.sapporo.jp" "b.sapporo.jp") nil)
(is (cookie-domain-p "b.sapporo.jp" "a.b.sapporo.jp") nil)
(is (cookie-domain-p "b.c.sapporo.jp" "jp") nil)
(is (cookie-domain-p "b.c.sapporo.jp" "sapporo.jp") nil)
(is (cookie-domain-p "b.c.sapporo.jp" "c.sapporo.jp") nil)
(is (cookie-domain-p "b.c.sapporo.jp" "b.c.sapporo.jp") t)
(is (cookie-domain-p "b.c.sapporo.jp" "a.b.c.sapporo.jp") nil)
(is (cookie-domain-p "b.c.d.sapporo.jp" "jp") nil)
(is (cookie-domain-p "b.c.d.sapporo.jp" "sapporo.jp") nil)
(is (cookie-domain-p "b.c.d.sapporo.jp" "d.sapporo.jp") nil)
(is (cookie-domain-p "b.c.d.sapporo.jp" "c.d.sapporo.jp") t)
(is (cookie-domain-p "b.c.d.sapporo.jp" "b.c.d.sapporo.jp") t)
(is (cookie-domain-p "b.c.d.sapporo.jp" "a.b.c.d.sapporo.jp") nil)
(is (cookie-domain-p "city.sapporo.jp" "jp") nil)
(is (cookie-domain-p "city.sapporo.jp" "sapporo.jp") nil)
(is (cookie-domain-p "city.sapporo.jp" "city.sapporo.jp") t)
(is (cookie-domain-p "city.sapporo.jp" "a.city.sapporo.jp") nil)
(is (cookie-domain-p "b.city.sapporo.jp" "jp") nil)
(is (cookie-domain-p "b.city.sapporo.jp" "sapporo.jp") nil)
(is (cookie-domain-p "b.city.sapporo.jp" "city.sapporo.jp") t)
(is (cookie-domain-p "b.city.sapporo.jp" "b.city.sapporo.jp") t)
(is (cookie-domain-p "b.city.sapporo.jp" "a.b.city.sapporo.jp") nil))
(finalize)
quri-20150804-git/t/encode.lisp 0000664 0000000 0000000 00000000706 12555317001 0016113 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri-test.encode
(:use :cl
:quri.encode
:prove))
(in-package :quri-test.encode)
(plan 2)
(subtest "url-encode"
(is (url-encode "Tiffany") "Tiffany")
(is (url-encode "Tiffany & Co.") "Tiffany%20%26%20Co.")
(is (url-encode "Tiffany & Co." :space-to-plus t)
"Tiffany+%26+Co."))
(subtest "url-encode-params"
(is (url-encode-params '(("a" . "b") ("c" . "d")))
"a=b&c=d"))
(finalize)
quri-20150804-git/t/etld.lisp 0000664 0000000 0000000 00000005227 12555317001 0015611 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri-test.etld
(:use :cl
:quri.etld
:prove))
(in-package :quri-test.etld)
(plan nil)
(subtest "parse-domain"
(is (parse-domain "com") nil)
(is (parse-domain "example.com") "example.com")
(is (parse-domain "www.example.com") "example.com")
(is (parse-domain "uk.com") nil)
(is (parse-domain "example.uk.com") "example.uk.com")
(is (parse-domain "b.example.uk.com") "example.uk.com")
(is (parse-domain "a.b.example.uk.com") "example.uk.com")
(is (parse-domain "test.ac") "test.ac")
;; TLD with only 1 (wildcard) rule
(is (parse-domain "cy") nil)
(is (parse-domain "c.cy") nil)
(is (parse-domain "b.c.cy") "b.c.cy")
(is (parse-domain "a.b.c.cy") "b.c.cy")
;; jp domain
(is (parse-domain "jp") nil)
(is (parse-domain "test.jp") "test.jp")
(is (parse-domain "www.test.jp") "test.jp")
(is (parse-domain "ac.jp") nil)
(is (parse-domain "test.ac.jp") "test.ac.jp")
(is (parse-domain "kyoto.jp") nil)
(is (parse-domain "test.kyoto.jp") "test.kyoto.jp")
(is (parse-domain "ide.kyoto.jp") nil)
(is (parse-domain "b.ide.kyoto.jp") "b.ide.kyoto.jp")
(is (parse-domain "a.b.ide.kyoto.jp") "b.ide.kyoto.jp")
(is (parse-domain "c.kobe.jp") nil)
(is (parse-domain "b.c.kobe.jp") "b.c.kobe.jp")
(is (parse-domain "a.b.c.kobe.jp") "b.c.kobe.jp")
(is (parse-domain "city.kobe.jp") "city.kobe.jp")
(is (parse-domain "www.city.kobe.jp") "city.kobe.jp")
;; TLD with a wildcard rule and exceptions
(is (parse-domain "ck") nil)
(is (parse-domain "test.ck") nil)
(is (parse-domain "b.test.ck") "b.test.ck")
(is (parse-domain "a.b.test.ck") "b.test.ck")
(is (parse-domain "www.ck") "www.ck")
(is (parse-domain "www.www.ck") "www.ck")
;; US K12
(is (parse-domain "us") nil)
(is (parse-domain "test.us") "test.us")
(is (parse-domain "www.test.us") "test.us")
(is (parse-domain "ak.us") nil)
(is (parse-domain "test.ak.us") "test.ak.us")
(is (parse-domain "www.test.ak.us") "test.ak.us")
(is (parse-domain "k12.ak.us") nil)
(is (parse-domain "test.k12.ak.us") "test.k12.ak.us")
(is (parse-domain "www.test.k12.ak.us") "test.k12.ak.us")
;; IDN labels.
(is (parse-domain "公司.cn") nil)
;; Unlisted TLD
(is (parse-domain "example") "example")
(is (parse-domain "example.example") "example.example")
(is (parse-domain "b.example.example") "example.example")
(is (parse-domain "a.b.example.example") "example.example")
;; Listed TLD, but non-Internet TLD
(is (parse-domain "local") "local")
(is (parse-domain "example.local") "example.local")
(is (parse-domain "b.example.local") "example.local")
(is (parse-domain "a.b.example.local") "example.local"))
(finalize)
quri-20150804-git/t/parser.lisp 0000664 0000000 0000000 00000000234 12555317001 0016146 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri-test.parser
(:use :cl
:quri.parser
:prove))
(in-package :quri-test.parser)
(plan nil)
(finalize)
quri-20150804-git/t/quri.lisp 0000664 0000000 0000000 00000007414 12555317001 0015641 0 ustar 00root root 0000000 0000000 (in-package :cl-user)
(defpackage quri-test
(:use :cl
:quri
:prove))
(in-package :quri-test)
(plan nil)
(subtest "uri="
(let ((prove:*default-test-function* #'uri=))
(is (uri "http://b.hatena.ne.jp")
(uri "http://b.hatena.ne.jp:80"))
(is (uri "http://b.hatena.ne.jp")
(make-uri :scheme "http" :host "b.hatena.ne.jp"))))
(defparameter *test-cases*
'(("file:///tmp/junk.txt" .
("file" nil nil "/tmp/junk.txt" nil nil))
("imap://mail.common-lisp.net/mbox1" .
("imap" nil "mail.common-lisp.net" "/mbox1" nil nil))
("mms://wms.sys.hinet.net/cts/Drama/09006251100.asf" .
("mms" nil "wms.sys.hinet.net" "/cts/Drama/09006251100.asf" nil nil))
("nfs://server/path/to/file.txt" .
("nfs" nil "server" "/path/to/file.txt" nil nil))
("svn+ssh://svn.zope.org/repos/main/ZConfig/trunk/" .
("svn+ssh" nil "svn.zope.org" "/repos/main/ZConfig/trunk/" nil nil))
("git+ssh://git@github.com/user/project.git" .
("git+ssh" "git" "github.com" "/user/project.git" nil nil))
("http://common-lisp.net" .
("http" nil "common-lisp.net" nil nil nil))
("http://common-lisp.net#abc" .
("http" nil "common-lisp.net" nil nil "abc"))
("http://common-lisp.net?q=abc" .
("http" nil "common-lisp.net" nil "q=abc" nil))
("http://common-lisp.net/#abc" .
("http" nil "common-lisp.net" "/" nil "abc"))
("http://a/b/c/d;p?q#f" .
("http" nil "a" "/b/c/d;p" "q" "f"))
("http" .
(nil nil nil "http" nil nil))
("http:" .
("http" nil nil nil nil nil))
("ldap://[2001:db8::7]/c=GB?objectClass?one" .
("ldap" nil "[2001:db8::7]" "/c=GB" "objectClass?one" nil))
("http://[dead:beef::]:/foo/" .
("http" nil "[dead:beef::]" "/foo/" nil nil))
("tel:+31-641044153" .
("tel" nil nil "+31-641044153" nil nil))))
(loop for (test-uri . params) in *test-cases* do
(subtest (format nil "~A (string)" test-uri)
(let ((uri (uri test-uri)))
(is (uri-scheme uri) (nth 0 params) "scheme")
(is (uri-userinfo uri) (nth 1 params) "userinfo")
(is (uri-host uri) (nth 2 params) "host")
(is (uri-path uri) (nth 3 params) "path")
(is (uri-query uri) (nth 4 params) "query")
(is (uri-fragment uri) (nth 5 params) "fragment")))
(subtest (format nil "~A (byte-vector)" test-uri)
(let ((uri (uri (babel:string-to-octets test-uri))))
(is (uri-scheme uri) (nth 0 params) "scheme")
(is (uri-userinfo uri) (nth 1 params) "userinfo")
(is (uri-host uri) (nth 2 params) "host")
(is (uri-path uri) (nth 3 params) "path")
(is (uri-query uri) (nth 4 params) "query")
(is (uri-fragment uri) (nth 5 params) "fragment")))
(subtest (format nil "~A (copy-uri)" test-uri)
(let ((uri (uri test-uri)))
(is uri (copy-uri uri) :test #'uri=))))
(defparameter *base-uri* (uri "http://www.example.com/path/a/b.html"))
(defparameter *merge-test-cases*
`((,(uri "file:///tmp/junk.txt") . "file:///tmp/junk.txt")
(,(make-uri :userinfo "auth" :host "secretplace.com") . "http://auth@secretplace.com")
(,(make-uri :host "example.com" :path "/path" :query "query") . "http://example.com/path?query")
(,(uri "/new/path") . "http://www.example.com/new/path")
(,(uri "foo.txt") . "http://www.example.com/path/a/foo.txt")
(,(uri "../bar") . "http://www.example.com/path/bar")
(,(uri "other/./car") . "http://www.example.com/path/a/other/car")
(,(uri "./../.") . "http://www.example.com/path/")
(,(make-uri :query "name=fukamachi") . "http://www.example.com/path/a/b.html?name=fukamachi")))
(subtest "merge-uris"
(loop for (test-uri . result-uri) in *merge-test-cases* do
(let ((merged-uri (merge-uris test-uri *base-uri*)))
(is (render-uri merged-uri) result-uri :test 'string=))))
(finalize)