Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
DomainValidator |
|
| 4.722222222222222;4.722 | ||||
DomainValidator$1 |
|
| 4.722222222222222;4.722 | ||||
DomainValidator$ArrayType |
|
| 4.722222222222222;4.722 | ||||
DomainValidator$IDNBUGHOLDER |
|
| 4.722222222222222;4.722 |
1 | /* | |
2 | * Licensed to the Apache Software Foundation (ASF) under one or more | |
3 | * contributor license agreements. See the NOTICE file distributed with | |
4 | * this work for additional information regarding copyright ownership. | |
5 | * The ASF licenses this file to You under the Apache License, Version 2.0 | |
6 | * (the "License"); you may not use this file except in compliance with | |
7 | * the License. You may obtain a copy of the License at | |
8 | * | |
9 | * http://www.apache.org/licenses/LICENSE-2.0 | |
10 | * | |
11 | * Unless required by applicable law or agreed to in writing, software | |
12 | * distributed under the License is distributed on an "AS IS" BASIS, | |
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
14 | * See the License for the specific language governing permissions and | |
15 | * limitations under the License. | |
16 | */ | |
17 | package org.apache.commons.validator.routines; | |
18 | ||
19 | import java.io.Serializable; | |
20 | import java.net.IDN; | |
21 | import java.util.Arrays; | |
22 | import java.util.Locale; | |
23 | ||
24 | /** | |
25 | * <p><b>Domain name</b> validation routines.</p> | |
26 | * | |
27 | * <p> | |
28 | * This validator provides methods for validating Internet domain names | |
29 | * and top-level domains. | |
30 | * </p> | |
31 | * | |
32 | * <p>Domain names are evaluated according | |
33 | * to the standards <a href="http://www.ietf.org/rfc/rfc1034.txt">RFC1034</a>, | |
34 | * section 3, and <a href="http://www.ietf.org/rfc/rfc1123.txt">RFC1123</a>, | |
35 | * section 2.1. No accommodation is provided for the specialized needs of | |
36 | * other applications; if the domain name has been URL-encoded, for example, | |
37 | * validation will fail even though the equivalent plaintext version of the | |
38 | * same name would have passed. | |
39 | * </p> | |
40 | * | |
41 | * <p> | |
42 | * Validation is also provided for top-level domains (TLDs) as defined and | |
43 | * maintained by the Internet Assigned Numbers Authority (IANA): | |
44 | * </p> | |
45 | * | |
46 | * <ul> | |
47 | * <li>{@link #isValidInfrastructureTld} - validates infrastructure TLDs | |
48 | * (<code>.arpa</code>, etc.)</li> | |
49 | * <li>{@link #isValidGenericTld} - validates generic TLDs | |
50 | * (<code>.com, .org</code>, etc.)</li> | |
51 | * <li>{@link #isValidCountryCodeTld} - validates country code TLDs | |
52 | * (<code>.us, .uk, .cn</code>, etc.)</li> | |
53 | * </ul> | |
54 | * | |
55 | * <p> | |
56 | * (<b>NOTE</b>: This class does not provide IP address lookup for domain names or | |
57 | * methods to ensure that a given domain name matches a specific IP; see | |
58 | * {@link java.net.InetAddress} for that functionality.) | |
59 | * </p> | |
60 | * | |
61 | * @version $Revision: 1781829 $ | |
62 | * @since Validator 1.4 | |
63 | */ | |
64 | public class DomainValidator implements Serializable { | |
65 | ||
66 | private static final int MAX_DOMAIN_LENGTH = 253; | |
67 | ||
68 | 1 | private static final String[] EMPTY_STRING_ARRAY = new String[0]; |
69 | ||
70 | private static final long serialVersionUID = -4407125112880174009L; | |
71 | ||
72 | // Regular expression strings for hostnames (derived from RFC2396 and RFC 1123) | |
73 | ||
74 | // RFC2396: domainlabel = alphanum | alphanum *( alphanum | "-" ) alphanum | |
75 | // Max 63 characters | |
76 | private static final String DOMAIN_LABEL_REGEX = "\\p{Alnum}(?>[\\p{Alnum}-]{0,61}\\p{Alnum})?"; | |
77 | ||
78 | // RFC2396 toplabel = alpha | alpha *( alphanum | "-" ) alphanum | |
79 | // Max 63 characters | |
80 | private static final String TOP_LABEL_REGEX = "\\p{Alpha}(?>[\\p{Alnum}-]{0,61}\\p{Alnum})?"; | |
81 | ||
82 | // RFC2396 hostname = *( domainlabel "." ) toplabel [ "." ] | |
83 | // Note that the regex currently requires both a domain label and a top level label, whereas | |
84 | // the RFC does not. This is because the regex is used to detect if a TLD is present. | |
85 | // If the match fails, input is checked against DOMAIN_LABEL_REGEX (hostnameRegex) | |
86 | // RFC1123 sec 2.1 allows hostnames to start with a digit | |
87 | private static final String DOMAIN_NAME_REGEX = | |
88 | "^(?:" + DOMAIN_LABEL_REGEX + "\\.)+" + "(" + TOP_LABEL_REGEX + ")\\.?$"; | |
89 | ||
90 | private final boolean allowLocal; | |
91 | ||
92 | /** | |
93 | * Singleton instance of this validator, which | |
94 | * doesn't consider local addresses as valid. | |
95 | */ | |
96 | 1 | private static final DomainValidator DOMAIN_VALIDATOR = new DomainValidator(false); |
97 | ||
98 | /** | |
99 | * Singleton instance of this validator, which does | |
100 | * consider local addresses valid. | |
101 | */ | |
102 | 1 | private static final DomainValidator DOMAIN_VALIDATOR_WITH_LOCAL = new DomainValidator(true); |
103 | ||
104 | /** | |
105 | * RegexValidator for matching domains. | |
106 | */ | |
107 | 2 | private final RegexValidator domainRegex = |
108 | new RegexValidator(DOMAIN_NAME_REGEX); | |
109 | /** | |
110 | * RegexValidator for matching a local hostname | |
111 | */ | |
112 | // RFC1123 sec 2.1 allows hostnames to start with a digit | |
113 | 2 | private final RegexValidator hostnameRegex = |
114 | new RegexValidator(DOMAIN_LABEL_REGEX); | |
115 | ||
116 | /** | |
117 | * Returns the singleton instance of this validator. It | |
118 | * will not consider local addresses as valid. | |
119 | * @return the singleton instance of this validator | |
120 | */ | |
121 | public static synchronized DomainValidator getInstance() { | |
122 | 25 | inUse = true; |
123 | 25 | return DOMAIN_VALIDATOR; |
124 | } | |
125 | ||
126 | /** | |
127 | * Returns the singleton instance of this validator, | |
128 | * with local validation as required. | |
129 | * @param allowLocal Should local addresses be considered valid? | |
130 | * @return the singleton instance of this validator | |
131 | */ | |
132 | public static synchronized DomainValidator getInstance(boolean allowLocal) { | |
133 | 40818 | inUse = true; |
134 | 40818 | if(allowLocal) { |
135 | 14 | return DOMAIN_VALIDATOR_WITH_LOCAL; |
136 | } | |
137 | 40804 | return DOMAIN_VALIDATOR; |
138 | } | |
139 | ||
140 | /** Private constructor. */ | |
141 | 2 | private DomainValidator(boolean allowLocal) { |
142 | 2 | this.allowLocal = allowLocal; |
143 | 2 | } |
144 | ||
145 | /** | |
146 | * Returns true if the specified <code>String</code> parses | |
147 | * as a valid domain name with a recognized top-level domain. | |
148 | * The parsing is case-insensitive. | |
149 | * @param domain the parameter to check for domain name syntax | |
150 | * @return true if the parameter is a valid domain name | |
151 | */ | |
152 | public boolean isValid(String domain) { | |
153 | 40864 | if (domain == null) { |
154 | 2 | return false; |
155 | } | |
156 | 40862 | domain = unicodeToASCII(domain); |
157 | // hosts must be equally reachable via punycode and Unicode; | |
158 | // Unicode is never shorter than punycode, so check punycode | |
159 | // if domain did not convert, then it will be caught by ASCII | |
160 | // checks in the regexes below | |
161 | 40862 | if (domain.length() > MAX_DOMAIN_LENGTH) { |
162 | 0 | return false; |
163 | } | |
164 | 40862 | String[] groups = domainRegex.match(domain); |
165 | 40862 | if (groups != null && groups.length > 0) { |
166 | 16422 | return isValidTld(groups[0]); |
167 | } | |
168 | 24440 | return allowLocal && hostnameRegex.isValid(domain); |
169 | } | |
170 | ||
171 | // package protected for unit test access | |
172 | // must agree with isValid() above | |
173 | final boolean isValidDomainSyntax(String domain) { | |
174 | 21 | if (domain == null) { |
175 | 0 | return false; |
176 | } | |
177 | 21 | domain = unicodeToASCII(domain); |
178 | // hosts must be equally reachable via punycode and Unicode; | |
179 | // Unicode is never shorter than punycode, so check punycode | |
180 | // if domain did not convert, then it will be caught by ASCII | |
181 | // checks in the regexes below | |
182 | 21 | if (domain.length() > MAX_DOMAIN_LENGTH) { |
183 | 1 | return false; |
184 | } | |
185 | 20 | String[] groups = domainRegex.match(domain); |
186 | 20 | return (groups != null && groups.length > 0) |
187 | || hostnameRegex.isValid(domain); | |
188 | } | |
189 | ||
190 | /** | |
191 | * Returns true if the specified <code>String</code> matches any | |
192 | * IANA-defined top-level domain. Leading dots are ignored if present. | |
193 | * The search is case-insensitive. | |
194 | * @param tld the parameter to check for TLD status, not null | |
195 | * @return true if the parameter is a TLD | |
196 | */ | |
197 | public boolean isValidTld(String tld) { | |
198 | 16425 | tld = unicodeToASCII(tld); |
199 | 16425 | if(allowLocal && isValidLocalTld(tld)) { |
200 | 2 | return true; |
201 | } | |
202 | 16423 | return isValidInfrastructureTld(tld) |
203 | || isValidGenericTld(tld) | |
204 | || isValidCountryCodeTld(tld); | |
205 | } | |
206 | ||
207 | /** | |
208 | * Returns true if the specified <code>String</code> matches any | |
209 | * IANA-defined infrastructure top-level domain. Leading dots are | |
210 | * ignored if present. The search is case-insensitive. | |
211 | * @param iTld the parameter to check for infrastructure TLD status, not null | |
212 | * @return true if the parameter is an infrastructure TLD | |
213 | */ | |
214 | public boolean isValidInfrastructureTld(String iTld) { | |
215 | 16425 | final String key = chompLeadingDot(unicodeToASCII(iTld).toLowerCase(Locale.ENGLISH)); |
216 | 16425 | return arrayContains(INFRASTRUCTURE_TLDS, key); |
217 | } | |
218 | ||
219 | /** | |
220 | * Returns true if the specified <code>String</code> matches any | |
221 | * IANA-defined generic top-level domain. Leading dots are ignored | |
222 | * if present. The search is case-insensitive. | |
223 | * @param gTld the parameter to check for generic TLD status, not null | |
224 | * @return true if the parameter is a generic TLD | |
225 | */ | |
226 | public boolean isValidGenericTld(String gTld) { | |
227 | 16435 | final String key = chompLeadingDot(unicodeToASCII(gTld).toLowerCase(Locale.ENGLISH)); |
228 | 16435 | return (arrayContains(GENERIC_TLDS, key) || arrayContains(genericTLDsPlus, key)) |
229 | && !arrayContains(genericTLDsMinus, key); | |
230 | } | |
231 | ||
232 | /** | |
233 | * Returns true if the specified <code>String</code> matches any | |
234 | * IANA-defined country code top-level domain. Leading dots are | |
235 | * ignored if present. The search is case-insensitive. | |
236 | * @param ccTld the parameter to check for country code TLD status, not null | |
237 | * @return true if the parameter is a country code TLD | |
238 | */ | |
239 | public boolean isValidCountryCodeTld(String ccTld) { | |
240 | 8179 | final String key = chompLeadingDot(unicodeToASCII(ccTld).toLowerCase(Locale.ENGLISH)); |
241 | 8179 | return (arrayContains(COUNTRY_CODE_TLDS, key) || arrayContains(countryCodeTLDsPlus, key)) |
242 | && !arrayContains(countryCodeTLDsMinus, key); | |
243 | } | |
244 | ||
245 | /** | |
246 | * Returns true if the specified <code>String</code> matches any | |
247 | * widely used "local" domains (localhost or localdomain). Leading dots are | |
248 | * ignored if present. The search is case-insensitive. | |
249 | * @param lTld the parameter to check for local TLD status, not null | |
250 | * @return true if the parameter is an local TLD | |
251 | */ | |
252 | public boolean isValidLocalTld(String lTld) { | |
253 | 8 | final String key = chompLeadingDot(unicodeToASCII(lTld).toLowerCase(Locale.ENGLISH)); |
254 | 8 | return arrayContains(LOCAL_TLDS, key); |
255 | } | |
256 | ||
257 | private String chompLeadingDot(String str) { | |
258 | 41047 | if (str.startsWith(".")) { |
259 | 10 | return str.substring(1); |
260 | } | |
261 | 41037 | return str; |
262 | } | |
263 | ||
264 | // --------------------------------------------- | |
265 | // ----- TLDs defined by IANA | |
266 | // ----- Authoritative and comprehensive list at: | |
267 | // ----- http://data.iana.org/TLD/tlds-alpha-by-domain.txt | |
268 | ||
269 | // Note that the above list is in UPPER case. | |
270 | // The code currently converts strings to lower case (as per the tables below) | |
271 | ||
272 | // IANA also provide an HTML list at http://www.iana.org/domains/root/db | |
273 | // Note that this contains several country code entries which are NOT in | |
274 | // the text file. These all have the "Not assigned" in the "Sponsoring Organisation" column | |
275 | // For example (as of 2015-01-02): | |
276 | // .bl country-code Not assigned | |
277 | // .um country-code Not assigned | |
278 | ||
279 | // WARNING: this array MUST be sorted, otherwise it cannot be searched reliably using binary search | |
280 | 1 | private static final String[] INFRASTRUCTURE_TLDS = new String[] { |
281 | "arpa", // internet infrastructure | |
282 | }; | |
283 | ||
284 | // WARNING: this array MUST be sorted, otherwise it cannot be searched reliably using binary search | |
285 | 1 | private static final String[] GENERIC_TLDS = new String[] { |
286 | // Taken from Version 2017020400, Last Updated Sat Feb 4 07:07:01 2017 UTC | |
287 | "aaa", // aaa American Automobile Association, Inc. | |
288 | "aarp", // aarp AARP | |
289 | "abarth", // abarth Fiat Chrysler Automobiles N.V. | |
290 | "abb", // abb ABB Ltd | |
291 | "abbott", // abbott Abbott Laboratories, Inc. | |
292 | "abbvie", // abbvie AbbVie Inc. | |
293 | "abc", // abc Disney Enterprises, Inc. | |
294 | "able", // able Able Inc. | |
295 | "abogado", // abogado Top Level Domain Holdings Limited | |
296 | "abudhabi", // abudhabi Abu Dhabi Systems and Information Centre | |
297 | "academy", // academy Half Oaks, LLC | |
298 | "accenture", // accenture Accenture plc | |
299 | "accountant", // accountant dot Accountant Limited | |
300 | "accountants", // accountants Knob Town, LLC | |
301 | "aco", // aco ACO Severin Ahlmann GmbH & Co. KG | |
302 | "active", // active The Active Network, Inc | |
303 | "actor", // actor United TLD Holdco Ltd. | |
304 | "adac", // adac Allgemeiner Deutscher Automobil-Club e.V. (ADAC) | |
305 | "ads", // ads Charleston Road Registry Inc. | |
306 | "adult", // adult ICM Registry AD LLC | |
307 | "aeg", // aeg Aktiebolaget Electrolux | |
308 | "aero", // aero Societe Internationale de Telecommunications Aeronautique (SITA INC USA) | |
309 | "aetna", // aetna Aetna Life Insurance Company | |
310 | "afamilycompany", // afamilycompany Johnson Shareholdings, Inc. | |
311 | "afl", // afl Australian Football League | |
312 | "agakhan", // agakhan Fondation Aga Khan (Aga Khan Foundation) | |
313 | "agency", // agency Steel Falls, LLC | |
314 | "aig", // aig American International Group, Inc. | |
315 | "aigo", // aigo aigo Digital Technology Co,Ltd. | |
316 | "airbus", // airbus Airbus S.A.S. | |
317 | "airforce", // airforce United TLD Holdco Ltd. | |
318 | "airtel", // airtel Bharti Airtel Limited | |
319 | "akdn", // akdn Fondation Aga Khan (Aga Khan Foundation) | |
320 | "alfaromeo", // alfaromeo Fiat Chrysler Automobiles N.V. | |
321 | "alibaba", // alibaba Alibaba Group Holding Limited | |
322 | "alipay", // alipay Alibaba Group Holding Limited | |
323 | "allfinanz", // allfinanz Allfinanz Deutsche Vermögensberatung Aktiengesellschaft | |
324 | "allstate", // allstate Allstate Fire and Casualty Insurance Company | |
325 | "ally", // ally Ally Financial Inc. | |
326 | "alsace", // alsace REGION D ALSACE | |
327 | "alstom", // alstom ALSTOM | |
328 | "americanexpress", // americanexpress American Express Travel Related Services Company, Inc. | |
329 | "americanfamily", // americanfamily AmFam, Inc. | |
330 | "amex", // amex American Express Travel Related Services Company, Inc. | |
331 | "amfam", // amfam AmFam, Inc. | |
332 | "amica", // amica Amica Mutual Insurance Company | |
333 | "amsterdam", // amsterdam Gemeente Amsterdam | |
334 | "analytics", // analytics Campus IP LLC | |
335 | "android", // android Charleston Road Registry Inc. | |
336 | "anquan", // anquan QIHOO 360 TECHNOLOGY CO. LTD. | |
337 | "anz", // anz Australia and New Zealand Banking Group Limited | |
338 | "aol", // aol AOL Inc. | |
339 | "apartments", // apartments June Maple, LLC | |
340 | "app", // app Charleston Road Registry Inc. | |
341 | "apple", // apple Apple Inc. | |
342 | "aquarelle", // aquarelle Aquarelle.com | |
343 | "aramco", // aramco Aramco Services Company | |
344 | "archi", // archi STARTING DOT LIMITED | |
345 | "army", // army United TLD Holdco Ltd. | |
346 | "art", // art UK Creative Ideas Limited | |
347 | "arte", // arte Association Relative à la Télévision Européenne G.E.I.E. | |
348 | "asda", // asda Wal-Mart Stores, Inc. | |
349 | "asia", // asia DotAsia Organisation Ltd. | |
350 | "associates", // associates Baxter Hill, LLC | |
351 | "athleta", // athleta The Gap, Inc. | |
352 | "attorney", // attorney United TLD Holdco, Ltd | |
353 | "auction", // auction United TLD HoldCo, Ltd. | |
354 | "audi", // audi AUDI Aktiengesellschaft | |
355 | "audible", // audible Amazon Registry Services, Inc. | |
356 | "audio", // audio Uniregistry, Corp. | |
357 | "auspost", // auspost Australian Postal Corporation | |
358 | "author", // author Amazon Registry Services, Inc. | |
359 | "auto", // auto Uniregistry, Corp. | |
360 | "autos", // autos DERAutos, LLC | |
361 | "avianca", // avianca Aerovias del Continente Americano S.A. Avianca | |
362 | "aws", // aws Amazon Registry Services, Inc. | |
363 | "axa", // axa AXA SA | |
364 | "azure", // azure Microsoft Corporation | |
365 | "baby", // baby Johnson & Johnson Services, Inc. | |
366 | "baidu", // baidu Baidu, Inc. | |
367 | "banamex", // banamex Citigroup Inc. | |
368 | "bananarepublic", // bananarepublic The Gap, Inc. | |
369 | "band", // band United TLD Holdco, Ltd | |
370 | "bank", // bank fTLD Registry Services, LLC | |
371 | "bar", // bar Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable | |
372 | "barcelona", // barcelona Municipi de Barcelona | |
373 | "barclaycard", // barclaycard Barclays Bank PLC | |
374 | "barclays", // barclays Barclays Bank PLC | |
375 | "barefoot", // barefoot Gallo Vineyards, Inc. | |
376 | "bargains", // bargains Half Hallow, LLC | |
377 | "baseball", // baseball MLB Advanced Media DH, LLC | |
378 | "basketball", // basketball Fédération Internationale de Basketball (FIBA) | |
379 | "bauhaus", // bauhaus Werkhaus GmbH | |
380 | "bayern", // bayern Bayern Connect GmbH | |
381 | "bbc", // bbc British Broadcasting Corporation | |
382 | "bbt", // bbt BB&T Corporation | |
383 | "bbva", // bbva BANCO BILBAO VIZCAYA ARGENTARIA, S.A. | |
384 | "bcg", // bcg The Boston Consulting Group, Inc. | |
385 | "bcn", // bcn Municipi de Barcelona | |
386 | "beats", // beats Beats Electronics, LLC | |
387 | "beauty", // beauty L'Oréal | |
388 | "beer", // beer Top Level Domain Holdings Limited | |
389 | "bentley", // bentley Bentley Motors Limited | |
390 | "berlin", // berlin dotBERLIN GmbH & Co. KG | |
391 | "best", // best BestTLD Pty Ltd | |
392 | "bestbuy", // bestbuy BBY Solutions, Inc. | |
393 | "bet", // bet Afilias plc | |
394 | "bharti", // bharti Bharti Enterprises (Holding) Private Limited | |
395 | "bible", // bible American Bible Society | |
396 | "bid", // bid dot Bid Limited | |
397 | "bike", // bike Grand Hollow, LLC | |
398 | "bing", // bing Microsoft Corporation | |
399 | "bingo", // bingo Sand Cedar, LLC | |
400 | "bio", // bio STARTING DOT LIMITED | |
401 | "biz", // biz Neustar, Inc. | |
402 | "black", // black Afilias Limited | |
403 | "blackfriday", // blackfriday Uniregistry, Corp. | |
404 | "blanco", // blanco BLANCO GmbH + Co KG | |
405 | "blockbuster", // blockbuster Dish DBS Corporation | |
406 | "blog", // blog Knock Knock WHOIS There, LLC | |
407 | "bloomberg", // bloomberg Bloomberg IP Holdings LLC | |
408 | "blue", // blue Afilias Limited | |
409 | "bms", // bms Bristol-Myers Squibb Company | |
410 | "bmw", // bmw Bayerische Motoren Werke Aktiengesellschaft | |
411 | "bnl", // bnl Banca Nazionale del Lavoro | |
412 | "bnpparibas", // bnpparibas BNP Paribas | |
413 | "boats", // boats DERBoats, LLC | |
414 | "boehringer", // boehringer Boehringer Ingelheim International GmbH | |
415 | "bofa", // bofa NMS Services, Inc. | |
416 | "bom", // bom Núcleo de Informação e Coordenação do Ponto BR - NIC.br | |
417 | "bond", // bond Bond University Limited | |
418 | "boo", // boo Charleston Road Registry Inc. | |
419 | "book", // book Amazon Registry Services, Inc. | |
420 | "booking", // booking Booking.com B.V. | |
421 | "boots", // boots THE BOOTS COMPANY PLC | |
422 | "bosch", // bosch Robert Bosch GMBH | |
423 | "bostik", // bostik Bostik SA | |
424 | "boston", // boston Boston TLD Management, LLC | |
425 | "bot", // bot Amazon Registry Services, Inc. | |
426 | "boutique", // boutique Over Galley, LLC | |
427 | "box", // box NS1 Limited | |
428 | "bradesco", // bradesco Banco Bradesco S.A. | |
429 | "bridgestone", // bridgestone Bridgestone Corporation | |
430 | "broadway", // broadway Celebrate Broadway, Inc. | |
431 | "broker", // broker DOTBROKER REGISTRY LTD | |
432 | "brother", // brother Brother Industries, Ltd. | |
433 | "brussels", // brussels DNS.be vzw | |
434 | "budapest", // budapest Top Level Domain Holdings Limited | |
435 | "bugatti", // bugatti Bugatti International SA | |
436 | "build", // build Plan Bee LLC | |
437 | "builders", // builders Atomic Madison, LLC | |
438 | "business", // business Spring Cross, LLC | |
439 | "buy", // buy Amazon Registry Services, INC | |
440 | "buzz", // buzz DOTSTRATEGY CO. | |
441 | "bzh", // bzh Association www.bzh | |
442 | "cab", // cab Half Sunset, LLC | |
443 | "cafe", // cafe Pioneer Canyon, LLC | |
444 | "cal", // cal Charleston Road Registry Inc. | |
445 | "call", // call Amazon Registry Services, Inc. | |
446 | "calvinklein", // calvinklein PVH gTLD Holdings LLC | |
447 | "cam", // cam AC Webconnecting Holding B.V. | |
448 | "camera", // camera Atomic Maple, LLC | |
449 | "camp", // camp Delta Dynamite, LLC | |
450 | "cancerresearch", // cancerresearch Australian Cancer Research Foundation | |
451 | "canon", // canon Canon Inc. | |
452 | "capetown", // capetown ZA Central Registry NPC trading as ZA Central Registry | |
453 | "capital", // capital Delta Mill, LLC | |
454 | "capitalone", // capitalone Capital One Financial Corporation | |
455 | "car", // car Cars Registry Limited | |
456 | "caravan", // caravan Caravan International, Inc. | |
457 | "cards", // cards Foggy Hollow, LLC | |
458 | "care", // care Goose Cross, LLC | |
459 | "career", // career dotCareer LLC | |
460 | "careers", // careers Wild Corner, LLC | |
461 | "cars", // cars Uniregistry, Corp. | |
462 | "cartier", // cartier Richemont DNS Inc. | |
463 | "casa", // casa Top Level Domain Holdings Limited | |
464 | "case", // case CNH Industrial N.V. | |
465 | "caseih", // caseih CNH Industrial N.V. | |
466 | "cash", // cash Delta Lake, LLC | |
467 | "casino", // casino Binky Sky, LLC | |
468 | "cat", // cat Fundacio puntCAT | |
469 | "catering", // catering New Falls. LLC | |
470 | "catholic", // catholic Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) | |
471 | "cba", // cba COMMONWEALTH BANK OF AUSTRALIA | |
472 | "cbn", // cbn The Christian Broadcasting Network, Inc. | |
473 | "cbre", // cbre CBRE, Inc. | |
474 | "cbs", // cbs CBS Domains Inc. | |
475 | "ceb", // ceb The Corporate Executive Board Company | |
476 | "center", // center Tin Mill, LLC | |
477 | "ceo", // ceo CEOTLD Pty Ltd | |
478 | "cern", // cern European Organization for Nuclear Research ("CERN") | |
479 | "cfa", // cfa CFA Institute | |
480 | "cfd", // cfd DOTCFD REGISTRY LTD | |
481 | "chanel", // chanel Chanel International B.V. | |
482 | "channel", // channel Charleston Road Registry Inc. | |
483 | "chase", // chase JPMorgan Chase & Co. | |
484 | "chat", // chat Sand Fields, LLC | |
485 | "cheap", // cheap Sand Cover, LLC | |
486 | "chintai", // chintai CHINTAI Corporation | |
487 | "chloe", // chloe Richemont DNS Inc. | |
488 | "christmas", // christmas Uniregistry, Corp. | |
489 | "chrome", // chrome Charleston Road Registry Inc. | |
490 | "chrysler", // chrysler FCA US LLC. | |
491 | "church", // church Holly Fileds, LLC | |
492 | "cipriani", // cipriani Hotel Cipriani Srl | |
493 | "circle", // circle Amazon Registry Services, Inc. | |
494 | "cisco", // cisco Cisco Technology, Inc. | |
495 | "citadel", // citadel Citadel Domain LLC | |
496 | "citi", // citi Citigroup Inc. | |
497 | "citic", // citic CITIC Group Corporation | |
498 | "city", // city Snow Sky, LLC | |
499 | "cityeats", // cityeats Lifestyle Domain Holdings, Inc. | |
500 | "claims", // claims Black Corner, LLC | |
501 | "cleaning", // cleaning Fox Shadow, LLC | |
502 | "click", // click Uniregistry, Corp. | |
503 | "clinic", // clinic Goose Park, LLC | |
504 | "clinique", // clinique The Estée Lauder Companies Inc. | |
505 | "clothing", // clothing Steel Lake, LLC | |
506 | "cloud", // cloud ARUBA S.p.A. | |
507 | "club", // club .CLUB DOMAINS, LLC | |
508 | "clubmed", // clubmed Club Méditerranée S.A. | |
509 | "coach", // coach Koko Island, LLC | |
510 | "codes", // codes Puff Willow, LLC | |
511 | "coffee", // coffee Trixy Cover, LLC | |
512 | "college", // college XYZ.COM LLC | |
513 | "cologne", // cologne NetCologne Gesellschaft für Telekommunikation mbH | |
514 | "com", // com VeriSign Global Registry Services | |
515 | "comcast", // comcast Comcast IP Holdings I, LLC | |
516 | "commbank", // commbank COMMONWEALTH BANK OF AUSTRALIA | |
517 | "community", // community Fox Orchard, LLC | |
518 | "company", // company Silver Avenue, LLC | |
519 | "compare", // compare iSelect Ltd | |
520 | "computer", // computer Pine Mill, LLC | |
521 | "comsec", // comsec VeriSign, Inc. | |
522 | "condos", // condos Pine House, LLC | |
523 | "construction", // construction Fox Dynamite, LLC | |
524 | "consulting", // consulting United TLD Holdco, LTD. | |
525 | "contact", // contact Top Level Spectrum, Inc. | |
526 | "contractors", // contractors Magic Woods, LLC | |
527 | "cooking", // cooking Top Level Domain Holdings Limited | |
528 | "cookingchannel", // cookingchannel Lifestyle Domain Holdings, Inc. | |
529 | "cool", // cool Koko Lake, LLC | |
530 | "coop", // coop DotCooperation LLC | |
531 | "corsica", // corsica Collectivité Territoriale de Corse | |
532 | "country", // country Top Level Domain Holdings Limited | |
533 | "coupon", // coupon Amazon Registry Services, Inc. | |
534 | "coupons", // coupons Black Island, LLC | |
535 | "courses", // courses OPEN UNIVERSITIES AUSTRALIA PTY LTD | |
536 | "credit", // credit Snow Shadow, LLC | |
537 | "creditcard", // creditcard Binky Frostbite, LLC | |
538 | "creditunion", // creditunion CUNA Performance Resources, LLC | |
539 | "cricket", // cricket dot Cricket Limited | |
540 | "crown", // crown Crown Equipment Corporation | |
541 | "crs", // crs Federated Co-operatives Limited | |
542 | "cruise", // cruise Viking River Cruises (Bermuda) Ltd. | |
543 | "cruises", // cruises Spring Way, LLC | |
544 | "csc", // csc Alliance-One Services, Inc. | |
545 | "cuisinella", // cuisinella SALM S.A.S. | |
546 | "cymru", // cymru Nominet UK | |
547 | "cyou", // cyou Beijing Gamease Age Digital Technology Co., Ltd. | |
548 | "dabur", // dabur Dabur India Limited | |
549 | "dad", // dad Charleston Road Registry Inc. | |
550 | "dance", // dance United TLD Holdco Ltd. | |
551 | "data", // data Dish DBS Corporation | |
552 | "date", // date dot Date Limited | |
553 | "dating", // dating Pine Fest, LLC | |
554 | "datsun", // datsun NISSAN MOTOR CO., LTD. | |
555 | "day", // day Charleston Road Registry Inc. | |
556 | "dclk", // dclk Charleston Road Registry Inc. | |
557 | "dds", // dds Minds + Machines Group Limited | |
558 | "deal", // deal Amazon Registry Services, Inc. | |
559 | "dealer", // dealer Dealer Dot Com, Inc. | |
560 | "deals", // deals Sand Sunset, LLC | |
561 | "degree", // degree United TLD Holdco, Ltd | |
562 | "delivery", // delivery Steel Station, LLC | |
563 | "dell", // dell Dell Inc. | |
564 | "deloitte", // deloitte Deloitte Touche Tohmatsu | |
565 | "delta", // delta Delta Air Lines, Inc. | |
566 | "democrat", // democrat United TLD Holdco Ltd. | |
567 | "dental", // dental Tin Birch, LLC | |
568 | "dentist", // dentist United TLD Holdco, Ltd | |
569 | "desi", // desi Desi Networks LLC | |
570 | "design", // design Top Level Design, LLC | |
571 | "dev", // dev Charleston Road Registry Inc. | |
572 | "dhl", // dhl Deutsche Post AG | |
573 | "diamonds", // diamonds John Edge, LLC | |
574 | "diet", // diet Uniregistry, Corp. | |
575 | "digital", // digital Dash Park, LLC | |
576 | "direct", // direct Half Trail, LLC | |
577 | "directory", // directory Extra Madison, LLC | |
578 | "discount", // discount Holly Hill, LLC | |
579 | "discover", // discover Discover Financial Services | |
580 | "dish", // dish Dish DBS Corporation | |
581 | "diy", // diy Lifestyle Domain Holdings, Inc. | |
582 | "dnp", // dnp Dai Nippon Printing Co., Ltd. | |
583 | "docs", // docs Charleston Road Registry Inc. | |
584 | "doctor", // doctor Brice Trail, LLC | |
585 | "dodge", // dodge FCA US LLC. | |
586 | "dog", // dog Koko Mill, LLC | |
587 | "doha", // doha Communications Regulatory Authority (CRA) | |
588 | "domains", // domains Sugar Cross, LLC | |
589 | // "doosan", // doosan Doosan Corporation (retired) | |
590 | "dot", // dot Dish DBS Corporation | |
591 | "download", // download dot Support Limited | |
592 | "drive", // drive Charleston Road Registry Inc. | |
593 | "dtv", // dtv Dish DBS Corporation | |
594 | "dubai", // dubai Dubai Smart Government Department | |
595 | "duck", // duck Johnson Shareholdings, Inc. | |
596 | "dunlop", // dunlop The Goodyear Tire & Rubber Company | |
597 | "duns", // duns The Dun & Bradstreet Corporation | |
598 | "dupont", // dupont E. I. du Pont de Nemours and Company | |
599 | "durban", // durban ZA Central Registry NPC trading as ZA Central Registry | |
600 | "dvag", // dvag Deutsche Vermögensberatung Aktiengesellschaft DVAG | |
601 | "dvr", // dvr Hughes Satellite Systems Corporation | |
602 | "earth", // earth Interlink Co., Ltd. | |
603 | "eat", // eat Charleston Road Registry Inc. | |
604 | "eco", // eco Big Room Inc. | |
605 | "edeka", // edeka EDEKA Verband kaufmännischer Genossenschaften e.V. | |
606 | "edu", // edu EDUCAUSE | |
607 | "education", // education Brice Way, LLC | |
608 | "email", // email Spring Madison, LLC | |
609 | "emerck", // emerck Merck KGaA | |
610 | "energy", // energy Binky Birch, LLC | |
611 | "engineer", // engineer United TLD Holdco Ltd. | |
612 | "engineering", // engineering Romeo Canyon | |
613 | "enterprises", // enterprises Snow Oaks, LLC | |
614 | "epost", // epost Deutsche Post AG | |
615 | "epson", // epson Seiko Epson Corporation | |
616 | "equipment", // equipment Corn Station, LLC | |
617 | "ericsson", // ericsson Telefonaktiebolaget L M Ericsson | |
618 | "erni", // erni ERNI Group Holding AG | |
619 | "esq", // esq Charleston Road Registry Inc. | |
620 | "estate", // estate Trixy Park, LLC | |
621 | "esurance", // esurance Esurance Insurance Company | |
622 | "eurovision", // eurovision European Broadcasting Union (EBU) | |
623 | "eus", // eus Puntueus Fundazioa | |
624 | "events", // events Pioneer Maple, LLC | |
625 | "everbank", // everbank EverBank | |
626 | "exchange", // exchange Spring Falls, LLC | |
627 | "expert", // expert Magic Pass, LLC | |
628 | "exposed", // exposed Victor Beach, LLC | |
629 | "express", // express Sea Sunset, LLC | |
630 | "extraspace", // extraspace Extra Space Storage LLC | |
631 | "fage", // fage Fage International S.A. | |
632 | "fail", // fail Atomic Pipe, LLC | |
633 | "fairwinds", // fairwinds FairWinds Partners, LLC | |
634 | "faith", // faith dot Faith Limited | |
635 | "family", // family United TLD Holdco Ltd. | |
636 | "fan", // fan Asiamix Digital Ltd | |
637 | "fans", // fans Asiamix Digital Limited | |
638 | "farm", // farm Just Maple, LLC | |
639 | "farmers", // farmers Farmers Insurance Exchange | |
640 | "fashion", // fashion Top Level Domain Holdings Limited | |
641 | "fast", // fast Amazon Registry Services, Inc. | |
642 | "fedex", // fedex Federal Express Corporation | |
643 | "feedback", // feedback Top Level Spectrum, Inc. | |
644 | "ferrari", // ferrari Fiat Chrysler Automobiles N.V. | |
645 | "ferrero", // ferrero Ferrero Trading Lux S.A. | |
646 | "fiat", // fiat Fiat Chrysler Automobiles N.V. | |
647 | "fidelity", // fidelity Fidelity Brokerage Services LLC | |
648 | "fido", // fido Rogers Communications Canada Inc. | |
649 | "film", // film Motion Picture Domain Registry Pty Ltd | |
650 | "final", // final Núcleo de Informação e Coordenação do Ponto BR - NIC.br | |
651 | "finance", // finance Cotton Cypress, LLC | |
652 | "financial", // financial Just Cover, LLC | |
653 | "fire", // fire Amazon Registry Services, Inc. | |
654 | "firestone", // firestone Bridgestone Corporation | |
655 | "firmdale", // firmdale Firmdale Holdings Limited | |
656 | "fish", // fish Fox Woods, LLC | |
657 | "fishing", // fishing Top Level Domain Holdings Limited | |
658 | "fit", // fit Minds + Machines Group Limited | |
659 | "fitness", // fitness Brice Orchard, LLC | |
660 | "flickr", // flickr Yahoo! Domain Services Inc. | |
661 | "flights", // flights Fox Station, LLC | |
662 | "flir", // flir FLIR Systems, Inc. | |
663 | "florist", // florist Half Cypress, LLC | |
664 | "flowers", // flowers Uniregistry, Corp. | |
665 | // "flsmidth", // flsmidth FLSmidth A/S retired 2016-07-22 | |
666 | "fly", // fly Charleston Road Registry Inc. | |
667 | "foo", // foo Charleston Road Registry Inc. | |
668 | "food", // food Lifestyle Domain Holdings, Inc. | |
669 | "foodnetwork", // foodnetwork Lifestyle Domain Holdings, Inc. | |
670 | "football", // football Foggy Farms, LLC | |
671 | "ford", // ford Ford Motor Company | |
672 | "forex", // forex DOTFOREX REGISTRY LTD | |
673 | "forsale", // forsale United TLD Holdco, LLC | |
674 | "forum", // forum Fegistry, LLC | |
675 | "foundation", // foundation John Dale, LLC | |
676 | "fox", // fox FOX Registry, LLC | |
677 | "free", // free Amazon Registry Services, Inc. | |
678 | "fresenius", // fresenius Fresenius Immobilien-Verwaltungs-GmbH | |
679 | "frl", // frl FRLregistry B.V. | |
680 | "frogans", // frogans OP3FT | |
681 | "frontdoor", // frontdoor Lifestyle Domain Holdings, Inc. | |
682 | "frontier", // frontier Frontier Communications Corporation | |
683 | "ftr", // ftr Frontier Communications Corporation | |
684 | "fujitsu", // fujitsu Fujitsu Limited | |
685 | "fujixerox", // fujixerox Xerox DNHC LLC | |
686 | "fun", // fun DotSpace, Inc. | |
687 | "fund", // fund John Castle, LLC | |
688 | "furniture", // furniture Lone Fields, LLC | |
689 | "futbol", // futbol United TLD Holdco, Ltd. | |
690 | "fyi", // fyi Silver Tigers, LLC | |
691 | "gal", // gal Asociación puntoGAL | |
692 | "gallery", // gallery Sugar House, LLC | |
693 | "gallo", // gallo Gallo Vineyards, Inc. | |
694 | "gallup", // gallup Gallup, Inc. | |
695 | "game", // game Uniregistry, Corp. | |
696 | "games", // games United TLD Holdco Ltd. | |
697 | "gap", // gap The Gap, Inc. | |
698 | "garden", // garden Top Level Domain Holdings Limited | |
699 | "gbiz", // gbiz Charleston Road Registry Inc. | |
700 | "gdn", // gdn Joint Stock Company "Navigation-information systems" | |
701 | "gea", // gea GEA Group Aktiengesellschaft | |
702 | "gent", // gent COMBELL GROUP NV/SA | |
703 | "genting", // genting Resorts World Inc. Pte. Ltd. | |
704 | "george", // george Wal-Mart Stores, Inc. | |
705 | "ggee", // ggee GMO Internet, Inc. | |
706 | "gift", // gift Uniregistry, Corp. | |
707 | "gifts", // gifts Goose Sky, LLC | |
708 | "gives", // gives United TLD Holdco Ltd. | |
709 | "giving", // giving Giving Limited | |
710 | "glade", // glade Johnson Shareholdings, Inc. | |
711 | "glass", // glass Black Cover, LLC | |
712 | "gle", // gle Charleston Road Registry Inc. | |
713 | "global", // global Dot Global Domain Registry Limited | |
714 | "globo", // globo Globo Comunicação e Participações S.A | |
715 | "gmail", // gmail Charleston Road Registry Inc. | |
716 | "gmbh", // gmbh Extra Dynamite, LLC | |
717 | "gmo", // gmo GMO Internet, Inc. | |
718 | "gmx", // gmx 1&1 Mail & Media GmbH | |
719 | "godaddy", // godaddy Go Daddy East, LLC | |
720 | "gold", // gold June Edge, LLC | |
721 | "goldpoint", // goldpoint YODOBASHI CAMERA CO.,LTD. | |
722 | "golf", // golf Lone Falls, LLC | |
723 | "goo", // goo NTT Resonant Inc. | |
724 | "goodhands", // goodhands Allstate Fire and Casualty Insurance Company | |
725 | "goodyear", // goodyear The Goodyear Tire & Rubber Company | |
726 | "goog", // goog Charleston Road Registry Inc. | |
727 | "google", // google Charleston Road Registry Inc. | |
728 | "gop", // gop Republican State Leadership Committee, Inc. | |
729 | "got", // got Amazon Registry Services, Inc. | |
730 | "gov", // gov General Services Administration Attn: QTDC, 2E08 (.gov Domain Registration) | |
731 | "grainger", // grainger Grainger Registry Services, LLC | |
732 | "graphics", // graphics Over Madison, LLC | |
733 | "gratis", // gratis Pioneer Tigers, LLC | |
734 | "green", // green Afilias Limited | |
735 | "gripe", // gripe Corn Sunset, LLC | |
736 | "group", // group Romeo Town, LLC | |
737 | "guardian", // guardian The Guardian Life Insurance Company of America | |
738 | "gucci", // gucci Guccio Gucci S.p.a. | |
739 | "guge", // guge Charleston Road Registry Inc. | |
740 | "guide", // guide Snow Moon, LLC | |
741 | "guitars", // guitars Uniregistry, Corp. | |
742 | "guru", // guru Pioneer Cypress, LLC | |
743 | "hair", // hair L'Oreal | |
744 | "hamburg", // hamburg Hamburg Top-Level-Domain GmbH | |
745 | "hangout", // hangout Charleston Road Registry Inc. | |
746 | "haus", // haus United TLD Holdco, LTD. | |
747 | "hbo", // hbo HBO Registry Services, Inc. | |
748 | "hdfc", // hdfc HOUSING DEVELOPMENT FINANCE CORPORATION LIMITED | |
749 | "hdfcbank", // hdfcbank HDFC Bank Limited | |
750 | "health", // health DotHealth, LLC | |
751 | "healthcare", // healthcare Silver Glen, LLC | |
752 | "help", // help Uniregistry, Corp. | |
753 | "helsinki", // helsinki City of Helsinki | |
754 | "here", // here Charleston Road Registry Inc. | |
755 | "hermes", // hermes Hermes International | |
756 | "hgtv", // hgtv Lifestyle Domain Holdings, Inc. | |
757 | "hiphop", // hiphop Uniregistry, Corp. | |
758 | "hisamitsu", // hisamitsu Hisamitsu Pharmaceutical Co.,Inc. | |
759 | "hitachi", // hitachi Hitachi, Ltd. | |
760 | "hiv", // hiv dotHIV gemeinnuetziger e.V. | |
761 | "hkt", // hkt PCCW-HKT DataCom Services Limited | |
762 | "hockey", // hockey Half Willow, LLC | |
763 | "holdings", // holdings John Madison, LLC | |
764 | "holiday", // holiday Goose Woods, LLC | |
765 | "homedepot", // homedepot Homer TLC, Inc. | |
766 | "homegoods", // homegoods The TJX Companies, Inc. | |
767 | "homes", // homes DERHomes, LLC | |
768 | "homesense", // homesense The TJX Companies, Inc. | |
769 | "honda", // honda Honda Motor Co., Ltd. | |
770 | "honeywell", // honeywell Honeywell GTLD LLC | |
771 | "horse", // horse Top Level Domain Holdings Limited | |
772 | "hospital", // hospital Ruby Pike, LLC | |
773 | "host", // host DotHost Inc. | |
774 | "hosting", // hosting Uniregistry, Corp. | |
775 | "hot", // hot Amazon Registry Services, Inc. | |
776 | "hoteles", // hoteles Travel Reservations SRL | |
777 | "hotmail", // hotmail Microsoft Corporation | |
778 | "house", // house Sugar Park, LLC | |
779 | "how", // how Charleston Road Registry Inc. | |
780 | "hsbc", // hsbc HSBC Holdings PLC | |
781 | "htc", // htc HTC corporation | |
782 | "hughes", // hughes Hughes Satellite Systems Corporation | |
783 | "hyatt", // hyatt Hyatt GTLD, L.L.C. | |
784 | "hyundai", // hyundai Hyundai Motor Company | |
785 | "ibm", // ibm International Business Machines Corporation | |
786 | "icbc", // icbc Industrial and Commercial Bank of China Limited | |
787 | "ice", // ice IntercontinentalExchange, Inc. | |
788 | "icu", // icu One.com A/S | |
789 | "ieee", // ieee IEEE Global LLC | |
790 | "ifm", // ifm ifm electronic gmbh | |
791 | // "iinet", // iinet Connect West Pty. Ltd. (Retired) | |
792 | "ikano", // ikano Ikano S.A. | |
793 | "imamat", // imamat Fondation Aga Khan (Aga Khan Foundation) | |
794 | "imdb", // imdb Amazon Registry Services, Inc. | |
795 | "immo", // immo Auburn Bloom, LLC | |
796 | "immobilien", // immobilien United TLD Holdco Ltd. | |
797 | "industries", // industries Outer House, LLC | |
798 | "infiniti", // infiniti NISSAN MOTOR CO., LTD. | |
799 | "info", // info Afilias Limited | |
800 | "ing", // ing Charleston Road Registry Inc. | |
801 | "ink", // ink Top Level Design, LLC | |
802 | "institute", // institute Outer Maple, LLC | |
803 | "insurance", // insurance fTLD Registry Services LLC | |
804 | "insure", // insure Pioneer Willow, LLC | |
805 | "int", // int Internet Assigned Numbers Authority | |
806 | "intel", // intel Intel Corporation | |
807 | "international", // international Wild Way, LLC | |
808 | "intuit", // intuit Intuit Administrative Services, Inc. | |
809 | "investments", // investments Holly Glen, LLC | |
810 | "ipiranga", // ipiranga Ipiranga Produtos de Petroleo S.A. | |
811 | "irish", // irish Dot-Irish LLC | |
812 | "iselect", // iselect iSelect Ltd | |
813 | "ismaili", // ismaili Fondation Aga Khan (Aga Khan Foundation) | |
814 | "ist", // ist Istanbul Metropolitan Municipality | |
815 | "istanbul", // istanbul Istanbul Metropolitan Municipality / Medya A.S. | |
816 | "itau", // itau Itau Unibanco Holding S.A. | |
817 | "itv", // itv ITV Services Limited | |
818 | "iveco", // iveco CNH Industrial N.V. | |
819 | "iwc", // iwc Richemont DNS Inc. | |
820 | "jaguar", // jaguar Jaguar Land Rover Ltd | |
821 | "java", // java Oracle Corporation | |
822 | "jcb", // jcb JCB Co., Ltd. | |
823 | "jcp", // jcp JCP Media, Inc. | |
824 | "jeep", // jeep FCA US LLC. | |
825 | "jetzt", // jetzt New TLD Company AB | |
826 | "jewelry", // jewelry Wild Bloom, LLC | |
827 | "jio", // jio Affinity Names, Inc. | |
828 | "jlc", // jlc Richemont DNS Inc. | |
829 | "jll", // jll Jones Lang LaSalle Incorporated | |
830 | "jmp", // jmp Matrix IP LLC | |
831 | "jnj", // jnj Johnson & Johnson Services, Inc. | |
832 | "jobs", // jobs Employ Media LLC | |
833 | "joburg", // joburg ZA Central Registry NPC trading as ZA Central Registry | |
834 | "jot", // jot Amazon Registry Services, Inc. | |
835 | "joy", // joy Amazon Registry Services, Inc. | |
836 | "jpmorgan", // jpmorgan JPMorgan Chase & Co. | |
837 | "jprs", // jprs Japan Registry Services Co., Ltd. | |
838 | "juegos", // juegos Uniregistry, Corp. | |
839 | "juniper", // juniper JUNIPER NETWORKS, INC. | |
840 | "kaufen", // kaufen United TLD Holdco Ltd. | |
841 | "kddi", // kddi KDDI CORPORATION | |
842 | "kerryhotels", // kerryhotels Kerry Trading Co. Limited | |
843 | "kerrylogistics", // kerrylogistics Kerry Trading Co. Limited | |
844 | "kerryproperties", // kerryproperties Kerry Trading Co. Limited | |
845 | "kfh", // kfh Kuwait Finance House | |
846 | "kia", // kia KIA MOTORS CORPORATION | |
847 | "kim", // kim Afilias Limited | |
848 | "kinder", // kinder Ferrero Trading Lux S.A. | |
849 | "kindle", // kindle Amazon Registry Services, Inc. | |
850 | "kitchen", // kitchen Just Goodbye, LLC | |
851 | "kiwi", // kiwi DOT KIWI LIMITED | |
852 | "koeln", // koeln NetCologne Gesellschaft für Telekommunikation mbH | |
853 | "komatsu", // komatsu Komatsu Ltd. | |
854 | "kosher", // kosher Kosher Marketing Assets LLC | |
855 | "kpmg", // kpmg KPMG International Cooperative (KPMG International Genossenschaft) | |
856 | "kpn", // kpn Koninklijke KPN N.V. | |
857 | "krd", // krd KRG Department of Information Technology | |
858 | "kred", // kred KredTLD Pty Ltd | |
859 | "kuokgroup", // kuokgroup Kerry Trading Co. Limited | |
860 | "kyoto", // kyoto Academic Institution: Kyoto Jyoho Gakuen | |
861 | "lacaixa", // lacaixa CAIXA D'ESTALVIS I PENSIONS DE BARCELONA | |
862 | "ladbrokes", // ladbrokes LADBROKES INTERNATIONAL PLC | |
863 | "lamborghini", // lamborghini Automobili Lamborghini S.p.A. | |
864 | "lamer", // lamer The Estée Lauder Companies Inc. | |
865 | "lancaster", // lancaster LANCASTER | |
866 | "lancia", // lancia Fiat Chrysler Automobiles N.V. | |
867 | "lancome", // lancome L'Oréal | |
868 | "land", // land Pine Moon, LLC | |
869 | "landrover", // landrover Jaguar Land Rover Ltd | |
870 | "lanxess", // lanxess LANXESS Corporation | |
871 | "lasalle", // lasalle Jones Lang LaSalle Incorporated | |
872 | "lat", // lat ECOM-LAC Federación de Latinoamérica y el Caribe para Internet y el Comercio Electrónico | |
873 | "latino", // latino Dish DBS Corporation | |
874 | "latrobe", // latrobe La Trobe University | |
875 | "law", // law Minds + Machines Group Limited | |
876 | "lawyer", // lawyer United TLD Holdco, Ltd | |
877 | "lds", // lds IRI Domain Management, LLC | |
878 | "lease", // lease Victor Trail, LLC | |
879 | "leclerc", // leclerc A.C.D. LEC Association des Centres Distributeurs Edouard Leclerc | |
880 | "lefrak", // lefrak LeFrak Organization, Inc. | |
881 | "legal", // legal Blue Falls, LLC | |
882 | "lego", // lego LEGO Juris A/S | |
883 | "lexus", // lexus TOYOTA MOTOR CORPORATION | |
884 | "lgbt", // lgbt Afilias Limited | |
885 | "liaison", // liaison Liaison Technologies, Incorporated | |
886 | "lidl", // lidl Schwarz Domains und Services GmbH & Co. KG | |
887 | "life", // life Trixy Oaks, LLC | |
888 | "lifeinsurance", // lifeinsurance American Council of Life Insurers | |
889 | "lifestyle", // lifestyle Lifestyle Domain Holdings, Inc. | |
890 | "lighting", // lighting John McCook, LLC | |
891 | "like", // like Amazon Registry Services, Inc. | |
892 | "lilly", // lilly Eli Lilly and Company | |
893 | "limited", // limited Big Fest, LLC | |
894 | "limo", // limo Hidden Frostbite, LLC | |
895 | "lincoln", // lincoln Ford Motor Company | |
896 | "linde", // linde Linde Aktiengesellschaft | |
897 | "link", // link Uniregistry, Corp. | |
898 | "lipsy", // lipsy Lipsy Ltd | |
899 | "live", // live United TLD Holdco Ltd. | |
900 | "living", // living Lifestyle Domain Holdings, Inc. | |
901 | "lixil", // lixil LIXIL Group Corporation | |
902 | "loan", // loan dot Loan Limited | |
903 | "loans", // loans June Woods, LLC | |
904 | "locker", // locker Dish DBS Corporation | |
905 | "locus", // locus Locus Analytics LLC | |
906 | "loft", // loft Annco, Inc. | |
907 | "lol", // lol Uniregistry, Corp. | |
908 | "london", // london Dot London Domains Limited | |
909 | "lotte", // lotte Lotte Holdings Co., Ltd. | |
910 | "lotto", // lotto Afilias Limited | |
911 | "love", // love Merchant Law Group LLP | |
912 | "lpl", // lpl LPL Holdings, Inc. | |
913 | "lplfinancial", // lplfinancial LPL Holdings, Inc. | |
914 | "ltd", // ltd Over Corner, LLC | |
915 | "ltda", // ltda InterNetX Corp. | |
916 | "lundbeck", // lundbeck H. Lundbeck A/S | |
917 | "lupin", // lupin LUPIN LIMITED | |
918 | "luxe", // luxe Top Level Domain Holdings Limited | |
919 | "luxury", // luxury Luxury Partners LLC | |
920 | "macys", // macys Macys, Inc. | |
921 | "madrid", // madrid Comunidad de Madrid | |
922 | "maif", // maif Mutuelle Assurance Instituteur France (MAIF) | |
923 | "maison", // maison Victor Frostbite, LLC | |
924 | "makeup", // makeup L'Oréal | |
925 | "man", // man MAN SE | |
926 | "management", // management John Goodbye, LLC | |
927 | "mango", // mango PUNTO FA S.L. | |
928 | "market", // market Unitied TLD Holdco, Ltd | |
929 | "marketing", // marketing Fern Pass, LLC | |
930 | "markets", // markets DOTMARKETS REGISTRY LTD | |
931 | "marriott", // marriott Marriott Worldwide Corporation | |
932 | "marshalls", // marshalls The TJX Companies, Inc. | |
933 | "maserati", // maserati Fiat Chrysler Automobiles N.V. | |
934 | "mattel", // mattel Mattel Sites, Inc. | |
935 | "mba", // mba Lone Hollow, LLC | |
936 | "mcd", // mcd McDonald’s Corporation | |
937 | "mcdonalds", // mcdonalds McDonald’s Corporation | |
938 | "mckinsey", // mckinsey McKinsey Holdings, Inc. | |
939 | "med", // med Medistry LLC | |
940 | "media", // media Grand Glen, LLC | |
941 | "meet", // meet Afilias Limited | |
942 | "melbourne", // melbourne The Crown in right of the State of Victoria, represented by its Department of State Development, Business and Innovation | |
943 | "meme", // meme Charleston Road Registry Inc. | |
944 | "memorial", // memorial Dog Beach, LLC | |
945 | "men", // men Exclusive Registry Limited | |
946 | "menu", // menu Wedding TLD2, LLC | |
947 | "meo", // meo PT Comunicacoes S.A. | |
948 | "metlife", // metlife MetLife Services and Solutions, LLC | |
949 | "miami", // miami Top Level Domain Holdings Limited | |
950 | "microsoft", // microsoft Microsoft Corporation | |
951 | "mil", // mil DoD Network Information Center | |
952 | "mini", // mini Bayerische Motoren Werke Aktiengesellschaft | |
953 | "mint", // mint Intuit Administrative Services, Inc. | |
954 | "mit", // mit Massachusetts Institute of Technology | |
955 | "mitsubishi", // mitsubishi Mitsubishi Corporation | |
956 | "mlb", // mlb MLB Advanced Media DH, LLC | |
957 | "mls", // mls The Canadian Real Estate Association | |
958 | "mma", // mma MMA IARD | |
959 | "mobi", // mobi Afilias Technologies Limited dba dotMobi | |
960 | "mobile", // mobile Dish DBS Corporation | |
961 | "mobily", // mobily GreenTech Consultancy Company W.L.L. | |
962 | "moda", // moda United TLD Holdco Ltd. | |
963 | "moe", // moe Interlink Co., Ltd. | |
964 | "moi", // moi Amazon Registry Services, Inc. | |
965 | "mom", // mom Uniregistry, Corp. | |
966 | "monash", // monash Monash University | |
967 | "money", // money Outer McCook, LLC | |
968 | "monster", // monster Monster Worldwide, Inc. | |
969 | "montblanc", // montblanc Richemont DNS Inc. | |
970 | "mopar", // mopar FCA US LLC. | |
971 | "mormon", // mormon IRI Domain Management, LLC ("Applicant") | |
972 | "mortgage", // mortgage United TLD Holdco, Ltd | |
973 | "moscow", // moscow Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID) | |
974 | "moto", // moto Motorola Trademark Holdings, LLC | |
975 | "motorcycles", // motorcycles DERMotorcycles, LLC | |
976 | "mov", // mov Charleston Road Registry Inc. | |
977 | "movie", // movie New Frostbite, LLC | |
978 | "movistar", // movistar Telefónica S.A. | |
979 | "msd", // msd MSD Registry Holdings, Inc. | |
980 | "mtn", // mtn MTN Dubai Limited | |
981 | "mtpc", // mtpc Mitsubishi Tanabe Pharma Corporation | |
982 | "mtr", // mtr MTR Corporation Limited | |
983 | "museum", // museum Museum Domain Management Association | |
984 | "mutual", // mutual Northwestern Mutual MU TLD Registry, LLC | |
985 | // "mutuelle", // mutuelle Fédération Nationale de la Mutualité Française (Retired) | |
986 | "nab", // nab National Australia Bank Limited | |
987 | "nadex", // nadex Nadex Domains, Inc | |
988 | "nagoya", // nagoya GMO Registry, Inc. | |
989 | "name", // name VeriSign Information Services, Inc. | |
990 | "nationwide", // nationwide Nationwide Mutual Insurance Company | |
991 | "natura", // natura NATURA COSMÉTICOS S.A. | |
992 | "navy", // navy United TLD Holdco Ltd. | |
993 | "nba", // nba NBA REGISTRY, LLC | |
994 | "nec", // nec NEC Corporation | |
995 | "net", // net VeriSign Global Registry Services | |
996 | "netbank", // netbank COMMONWEALTH BANK OF AUSTRALIA | |
997 | "netflix", // netflix Netflix, Inc. | |
998 | "network", // network Trixy Manor, LLC | |
999 | "neustar", // neustar NeuStar, Inc. | |
1000 | "new", // new Charleston Road Registry Inc. | |
1001 | "newholland", // newholland CNH Industrial N.V. | |
1002 | "news", // news United TLD Holdco Ltd. | |
1003 | "next", // next Next plc | |
1004 | "nextdirect", // nextdirect Next plc | |
1005 | "nexus", // nexus Charleston Road Registry Inc. | |
1006 | "nfl", // nfl NFL Reg Ops LLC | |
1007 | "ngo", // ngo Public Interest Registry | |
1008 | "nhk", // nhk Japan Broadcasting Corporation (NHK) | |
1009 | "nico", // nico DWANGO Co., Ltd. | |
1010 | "nike", // nike NIKE, Inc. | |
1011 | "nikon", // nikon NIKON CORPORATION | |
1012 | "ninja", // ninja United TLD Holdco Ltd. | |
1013 | "nissan", // nissan NISSAN MOTOR CO., LTD. | |
1014 | "nissay", // nissay Nippon Life Insurance Company | |
1015 | "nokia", // nokia Nokia Corporation | |
1016 | "northwesternmutual", // northwesternmutual Northwestern Mutual Registry, LLC | |
1017 | "norton", // norton Symantec Corporation | |
1018 | "now", // now Amazon Registry Services, Inc. | |
1019 | "nowruz", // nowruz Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. | |
1020 | "nowtv", // nowtv Starbucks (HK) Limited | |
1021 | "nra", // nra NRA Holdings Company, INC. | |
1022 | "nrw", // nrw Minds + Machines GmbH | |
1023 | "ntt", // ntt NIPPON TELEGRAPH AND TELEPHONE CORPORATION | |
1024 | "nyc", // nyc The City of New York by and through the New York City Department of Information Technology & Telecommunications | |
1025 | "obi", // obi OBI Group Holding SE & Co. KGaA | |
1026 | "observer", // observer Top Level Spectrum, Inc. | |
1027 | "off", // off Johnson Shareholdings, Inc. | |
1028 | "office", // office Microsoft Corporation | |
1029 | "okinawa", // okinawa BusinessRalliart inc. | |
1030 | "olayan", // olayan Crescent Holding GmbH | |
1031 | "olayangroup", // olayangroup Crescent Holding GmbH | |
1032 | "oldnavy", // oldnavy The Gap, Inc. | |
1033 | "ollo", // ollo Dish DBS Corporation | |
1034 | "omega", // omega The Swatch Group Ltd | |
1035 | "one", // one One.com A/S | |
1036 | "ong", // ong Public Interest Registry | |
1037 | "onl", // onl I-REGISTRY Ltd., Niederlassung Deutschland | |
1038 | "online", // online DotOnline Inc. | |
1039 | "onyourside", // onyourside Nationwide Mutual Insurance Company | |
1040 | "ooo", // ooo INFIBEAM INCORPORATION LIMITED | |
1041 | "open", // open American Express Travel Related Services Company, Inc. | |
1042 | "oracle", // oracle Oracle Corporation | |
1043 | "orange", // orange Orange Brand Services Limited | |
1044 | "org", // org Public Interest Registry (PIR) | |
1045 | "organic", // organic Afilias Limited | |
1046 | "orientexpress", // orientexpress Orient Express | |
1047 | "origins", // origins The Estée Lauder Companies Inc. | |
1048 | "osaka", // osaka Interlink Co., Ltd. | |
1049 | "otsuka", // otsuka Otsuka Holdings Co., Ltd. | |
1050 | "ott", // ott Dish DBS Corporation | |
1051 | "ovh", // ovh OVH SAS | |
1052 | "page", // page Charleston Road Registry Inc. | |
1053 | "pamperedchef", // pamperedchef The Pampered Chef, Ltd. | |
1054 | "panasonic", // panasonic Panasonic Corporation | |
1055 | "panerai", // panerai Richemont DNS Inc. | |
1056 | "paris", // paris City of Paris | |
1057 | "pars", // pars Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. | |
1058 | "partners", // partners Magic Glen, LLC | |
1059 | "parts", // parts Sea Goodbye, LLC | |
1060 | "party", // party Blue Sky Registry Limited | |
1061 | "passagens", // passagens Travel Reservations SRL | |
1062 | "pay", // pay Amazon Registry Services, Inc. | |
1063 | "pccw", // pccw PCCW Enterprises Limited | |
1064 | "pet", // pet Afilias plc | |
1065 | "pfizer", // pfizer Pfizer Inc. | |
1066 | "pharmacy", // pharmacy National Association of Boards of Pharmacy | |
1067 | "philips", // philips Koninklijke Philips N.V. | |
1068 | "phone", // phone Dish DBS Corporation | |
1069 | "photo", // photo Uniregistry, Corp. | |
1070 | "photography", // photography Sugar Glen, LLC | |
1071 | "photos", // photos Sea Corner, LLC | |
1072 | "physio", // physio PhysBiz Pty Ltd | |
1073 | "piaget", // piaget Richemont DNS Inc. | |
1074 | "pics", // pics Uniregistry, Corp. | |
1075 | "pictet", // pictet Pictet Europe S.A. | |
1076 | "pictures", // pictures Foggy Sky, LLC | |
1077 | "pid", // pid Top Level Spectrum, Inc. | |
1078 | "pin", // pin Amazon Registry Services, Inc. | |
1079 | "ping", // ping Ping Registry Provider, Inc. | |
1080 | "pink", // pink Afilias Limited | |
1081 | "pioneer", // pioneer Pioneer Corporation | |
1082 | "pizza", // pizza Foggy Moon, LLC | |
1083 | "place", // place Snow Galley, LLC | |
1084 | "play", // play Charleston Road Registry Inc. | |
1085 | "playstation", // playstation Sony Computer Entertainment Inc. | |
1086 | "plumbing", // plumbing Spring Tigers, LLC | |
1087 | "plus", // plus Sugar Mill, LLC | |
1088 | "pnc", // pnc PNC Domain Co., LLC | |
1089 | "pohl", // pohl Deutsche Vermögensberatung Aktiengesellschaft DVAG | |
1090 | "poker", // poker Afilias Domains No. 5 Limited | |
1091 | "politie", // politie Politie Nederland | |
1092 | "porn", // porn ICM Registry PN LLC | |
1093 | "post", // post Universal Postal Union | |
1094 | "pramerica", // pramerica Prudential Financial, Inc. | |
1095 | "praxi", // praxi Praxi S.p.A. | |
1096 | "press", // press DotPress Inc. | |
1097 | "prime", // prime Amazon Registry Services, Inc. | |
1098 | "pro", // pro Registry Services Corporation dba RegistryPro | |
1099 | "prod", // prod Charleston Road Registry Inc. | |
1100 | "productions", // productions Magic Birch, LLC | |
1101 | "prof", // prof Charleston Road Registry Inc. | |
1102 | "progressive", // progressive Progressive Casualty Insurance Company | |
1103 | "promo", // promo Afilias plc | |
1104 | "properties", // properties Big Pass, LLC | |
1105 | "property", // property Uniregistry, Corp. | |
1106 | "protection", // protection XYZ.COM LLC | |
1107 | "pru", // pru Prudential Financial, Inc. | |
1108 | "prudential", // prudential Prudential Financial, Inc. | |
1109 | "pub", // pub United TLD Holdco Ltd. | |
1110 | "pwc", // pwc PricewaterhouseCoopers LLP | |
1111 | "qpon", // qpon dotCOOL, Inc. | |
1112 | "quebec", // quebec PointQuébec Inc | |
1113 | "quest", // quest Quest ION Limited | |
1114 | "qvc", // qvc QVC, Inc. | |
1115 | "racing", // racing Premier Registry Limited | |
1116 | "radio", // radio European Broadcasting Union (EBU) | |
1117 | "raid", // raid Johnson Shareholdings, Inc. | |
1118 | "read", // read Amazon Registry Services, Inc. | |
1119 | "realestate", // realestate dotRealEstate LLC | |
1120 | "realtor", // realtor Real Estate Domains LLC | |
1121 | "realty", // realty Fegistry, LLC | |
1122 | "recipes", // recipes Grand Island, LLC | |
1123 | "red", // red Afilias Limited | |
1124 | "redstone", // redstone Redstone Haute Couture Co., Ltd. | |
1125 | "redumbrella", // redumbrella Travelers TLD, LLC | |
1126 | "rehab", // rehab United TLD Holdco Ltd. | |
1127 | "reise", // reise Foggy Way, LLC | |
1128 | "reisen", // reisen New Cypress, LLC | |
1129 | "reit", // reit National Association of Real Estate Investment Trusts, Inc. | |
1130 | "reliance", // reliance Reliance Industries Limited | |
1131 | "ren", // ren Beijing Qianxiang Wangjing Technology Development Co., Ltd. | |
1132 | "rent", // rent XYZ.COM LLC | |
1133 | "rentals", // rentals Big Hollow,LLC | |
1134 | "repair", // repair Lone Sunset, LLC | |
1135 | "report", // report Binky Glen, LLC | |
1136 | "republican", // republican United TLD Holdco Ltd. | |
1137 | "rest", // rest Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable | |
1138 | "restaurant", // restaurant Snow Avenue, LLC | |
1139 | "review", // review dot Review Limited | |
1140 | "reviews", // reviews United TLD Holdco, Ltd. | |
1141 | "rexroth", // rexroth Robert Bosch GMBH | |
1142 | "rich", // rich I-REGISTRY Ltd., Niederlassung Deutschland | |
1143 | "richardli", // richardli Pacific Century Asset Management (HK) Limited | |
1144 | "ricoh", // ricoh Ricoh Company, Ltd. | |
1145 | "rightathome", // rightathome Johnson Shareholdings, Inc. | |
1146 | "ril", // ril Reliance Industries Limited | |
1147 | "rio", // rio Empresa Municipal de Informática SA - IPLANRIO | |
1148 | "rip", // rip United TLD Holdco Ltd. | |
1149 | "rmit", // rmit Royal Melbourne Institute of Technology | |
1150 | "rocher", // rocher Ferrero Trading Lux S.A. | |
1151 | "rocks", // rocks United TLD Holdco, LTD. | |
1152 | "rodeo", // rodeo Top Level Domain Holdings Limited | |
1153 | "rogers", // rogers Rogers Communications Canada Inc. | |
1154 | "room", // room Amazon Registry Services, Inc. | |
1155 | "rsvp", // rsvp Charleston Road Registry Inc. | |
1156 | "ruhr", // ruhr regiodot GmbH & Co. KG | |
1157 | "run", // run Snow Park, LLC | |
1158 | "rwe", // rwe RWE AG | |
1159 | "ryukyu", // ryukyu BusinessRalliart inc. | |
1160 | "saarland", // saarland dotSaarland GmbH | |
1161 | "safe", // safe Amazon Registry Services, Inc. | |
1162 | "safety", // safety Safety Registry Services, LLC. | |
1163 | "sakura", // sakura SAKURA Internet Inc. | |
1164 | "sale", // sale United TLD Holdco, Ltd | |
1165 | "salon", // salon Outer Orchard, LLC | |
1166 | "samsclub", // samsclub Wal-Mart Stores, Inc. | |
1167 | "samsung", // samsung SAMSUNG SDS CO., LTD | |
1168 | "sandvik", // sandvik Sandvik AB | |
1169 | "sandvikcoromant", // sandvikcoromant Sandvik AB | |
1170 | "sanofi", // sanofi Sanofi | |
1171 | "sap", // sap SAP AG | |
1172 | "sapo", // sapo PT Comunicacoes S.A. | |
1173 | "sarl", // sarl Delta Orchard, LLC | |
1174 | "sas", // sas Research IP LLC | |
1175 | "save", // save Amazon Registry Services, Inc. | |
1176 | "saxo", // saxo Saxo Bank A/S | |
1177 | "sbi", // sbi STATE BANK OF INDIA | |
1178 | "sbs", // sbs SPECIAL BROADCASTING SERVICE CORPORATION | |
1179 | "sca", // sca SVENSKA CELLULOSA AKTIEBOLAGET SCA (publ) | |
1180 | "scb", // scb The Siam Commercial Bank Public Company Limited ("SCB") | |
1181 | "schaeffler", // schaeffler Schaeffler Technologies AG & Co. KG | |
1182 | "schmidt", // schmidt SALM S.A.S. | |
1183 | "scholarships", // scholarships Scholarships.com, LLC | |
1184 | "school", // school Little Galley, LLC | |
1185 | "schule", // schule Outer Moon, LLC | |
1186 | "schwarz", // schwarz Schwarz Domains und Services GmbH & Co. KG | |
1187 | "science", // science dot Science Limited | |
1188 | "scjohnson", // scjohnson Johnson Shareholdings, Inc. | |
1189 | "scor", // scor SCOR SE | |
1190 | "scot", // scot Dot Scot Registry Limited | |
1191 | "seat", // seat SEAT, S.A. (Sociedad Unipersonal) | |
1192 | "secure", // secure Amazon Registry Services, Inc. | |
1193 | "security", // security XYZ.COM LLC | |
1194 | "seek", // seek Seek Limited | |
1195 | "select", // select iSelect Ltd | |
1196 | "sener", // sener Sener Ingeniería y Sistemas, S.A. | |
1197 | "services", // services Fox Castle, LLC | |
1198 | "ses", // ses SES | |
1199 | "seven", // seven Seven West Media Ltd | |
1200 | "sew", // sew SEW-EURODRIVE GmbH & Co KG | |
1201 | "sex", // sex ICM Registry SX LLC | |
1202 | "sexy", // sexy Uniregistry, Corp. | |
1203 | "sfr", // sfr Societe Francaise du Radiotelephone - SFR | |
1204 | "shangrila", // shangrila Shangri‐La International Hotel Management Limited | |
1205 | "sharp", // sharp Sharp Corporation | |
1206 | "shaw", // shaw Shaw Cablesystems G.P. | |
1207 | "shell", // shell Shell Information Technology International Inc | |
1208 | "shia", // shia Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. | |
1209 | "shiksha", // shiksha Afilias Limited | |
1210 | "shoes", // shoes Binky Galley, LLC | |
1211 | "shop", // shop GMO Registry, Inc. | |
1212 | "shopping", // shopping Over Keep, LLC | |
1213 | "shouji", // shouji QIHOO 360 TECHNOLOGY CO. LTD. | |
1214 | "show", // show Snow Beach, LLC | |
1215 | "showtime", // showtime CBS Domains Inc. | |
1216 | "shriram", // shriram Shriram Capital Ltd. | |
1217 | "silk", // silk Amazon Registry Services, Inc. | |
1218 | "sina", // sina Sina Corporation | |
1219 | "singles", // singles Fern Madison, LLC | |
1220 | "site", // site DotSite Inc. | |
1221 | "ski", // ski STARTING DOT LIMITED | |
1222 | "skin", // skin L'Oréal | |
1223 | "sky", // sky Sky International AG | |
1224 | "skype", // skype Microsoft Corporation | |
1225 | "sling", // sling Hughes Satellite Systems Corporation | |
1226 | "smart", // smart Smart Communications, Inc. (SMART) | |
1227 | "smile", // smile Amazon Registry Services, Inc. | |
1228 | "sncf", // sncf SNCF (Société Nationale des Chemins de fer Francais) | |
1229 | "soccer", // soccer Foggy Shadow, LLC | |
1230 | "social", // social United TLD Holdco Ltd. | |
1231 | "softbank", // softbank SoftBank Group Corp. | |
1232 | "software", // software United TLD Holdco, Ltd | |
1233 | "sohu", // sohu Sohu.com Limited | |
1234 | "solar", // solar Ruby Town, LLC | |
1235 | "solutions", // solutions Silver Cover, LLC | |
1236 | "song", // song Amazon Registry Services, Inc. | |
1237 | "sony", // sony Sony Corporation | |
1238 | "soy", // soy Charleston Road Registry Inc. | |
1239 | "space", // space DotSpace Inc. | |
1240 | "spiegel", // spiegel SPIEGEL-Verlag Rudolf Augstein GmbH & Co. KG | |
1241 | "spot", // spot Amazon Registry Services, Inc. | |
1242 | "spreadbetting", // spreadbetting DOTSPREADBETTING REGISTRY LTD | |
1243 | "srl", // srl InterNetX Corp. | |
1244 | "srt", // srt FCA US LLC. | |
1245 | "stada", // stada STADA Arzneimittel AG | |
1246 | "staples", // staples Staples, Inc. | |
1247 | "star", // star Star India Private Limited | |
1248 | "starhub", // starhub StarHub Limited | |
1249 | "statebank", // statebank STATE BANK OF INDIA | |
1250 | "statefarm", // statefarm State Farm Mutual Automobile Insurance Company | |
1251 | "statoil", // statoil Statoil ASA | |
1252 | "stc", // stc Saudi Telecom Company | |
1253 | "stcgroup", // stcgroup Saudi Telecom Company | |
1254 | "stockholm", // stockholm Stockholms kommun | |
1255 | "storage", // storage Self Storage Company LLC | |
1256 | "store", // store DotStore Inc. | |
1257 | "stream", // stream dot Stream Limited | |
1258 | "studio", // studio United TLD Holdco Ltd. | |
1259 | "study", // study OPEN UNIVERSITIES AUSTRALIA PTY LTD | |
1260 | "style", // style Binky Moon, LLC | |
1261 | "sucks", // sucks Vox Populi Registry Ltd. | |
1262 | "supplies", // supplies Atomic Fields, LLC | |
1263 | "supply", // supply Half Falls, LLC | |
1264 | "support", // support Grand Orchard, LLC | |
1265 | "surf", // surf Top Level Domain Holdings Limited | |
1266 | "surgery", // surgery Tin Avenue, LLC | |
1267 | "suzuki", // suzuki SUZUKI MOTOR CORPORATION | |
1268 | "swatch", // swatch The Swatch Group Ltd | |
1269 | "swiftcover", // swiftcover Swiftcover Insurance Services Limited | |
1270 | "swiss", // swiss Swiss Confederation | |
1271 | "sydney", // sydney State of New South Wales, Department of Premier and Cabinet | |
1272 | "symantec", // symantec Symantec Corporation | |
1273 | "systems", // systems Dash Cypress, LLC | |
1274 | "tab", // tab Tabcorp Holdings Limited | |
1275 | "taipei", // taipei Taipei City Government | |
1276 | "talk", // talk Amazon Registry Services, Inc. | |
1277 | "taobao", // taobao Alibaba Group Holding Limited | |
1278 | "target", // target Target Domain Holdings, LLC | |
1279 | "tatamotors", // tatamotors Tata Motors Ltd | |
1280 | "tatar", // tatar Limited Liability Company "Coordination Center of Regional Domain of Tatarstan Republic" | |
1281 | "tattoo", // tattoo Uniregistry, Corp. | |
1282 | "tax", // tax Storm Orchard, LLC | |
1283 | "taxi", // taxi Pine Falls, LLC | |
1284 | "tci", // tci Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. | |
1285 | "tdk", // tdk TDK Corporation | |
1286 | "team", // team Atomic Lake, LLC | |
1287 | "tech", // tech Dot Tech LLC | |
1288 | "technology", // technology Auburn Falls, LLC | |
1289 | "tel", // tel Telnic Ltd. | |
1290 | "telecity", // telecity TelecityGroup International Limited | |
1291 | "telefonica", // telefonica Telefónica S.A. | |
1292 | "temasek", // temasek Temasek Holdings (Private) Limited | |
1293 | "tennis", // tennis Cotton Bloom, LLC | |
1294 | "teva", // teva Teva Pharmaceutical Industries Limited | |
1295 | "thd", // thd Homer TLC, Inc. | |
1296 | "theater", // theater Blue Tigers, LLC | |
1297 | "theatre", // theatre XYZ.COM LLC | |
1298 | "tiaa", // tiaa Teachers Insurance and Annuity Association of America | |
1299 | "tickets", // tickets Accent Media Limited | |
1300 | "tienda", // tienda Victor Manor, LLC | |
1301 | "tiffany", // tiffany Tiffany and Company | |
1302 | "tips", // tips Corn Willow, LLC | |
1303 | "tires", // tires Dog Edge, LLC | |
1304 | "tirol", // tirol punkt Tirol GmbH | |
1305 | "tjmaxx", // tjmaxx The TJX Companies, Inc. | |
1306 | "tjx", // tjx The TJX Companies, Inc. | |
1307 | "tkmaxx", // tkmaxx The TJX Companies, Inc. | |
1308 | "tmall", // tmall Alibaba Group Holding Limited | |
1309 | "today", // today Pearl Woods, LLC | |
1310 | "tokyo", // tokyo GMO Registry, Inc. | |
1311 | "tools", // tools Pioneer North, LLC | |
1312 | "top", // top Jiangsu Bangning Science & Technology Co.,Ltd. | |
1313 | "toray", // toray Toray Industries, Inc. | |
1314 | "toshiba", // toshiba TOSHIBA Corporation | |
1315 | "total", // total Total SA | |
1316 | "tours", // tours Sugar Station, LLC | |
1317 | "town", // town Koko Moon, LLC | |
1318 | "toyota", // toyota TOYOTA MOTOR CORPORATION | |
1319 | "toys", // toys Pioneer Orchard, LLC | |
1320 | "trade", // trade Elite Registry Limited | |
1321 | "trading", // trading DOTTRADING REGISTRY LTD | |
1322 | "training", // training Wild Willow, LLC | |
1323 | "travel", // travel Tralliance Registry Management Company, LLC. | |
1324 | "travelchannel", // travelchannel Lifestyle Domain Holdings, Inc. | |
1325 | "travelers", // travelers Travelers TLD, LLC | |
1326 | "travelersinsurance", // travelersinsurance Travelers TLD, LLC | |
1327 | "trust", // trust Artemis Internet Inc | |
1328 | "trv", // trv Travelers TLD, LLC | |
1329 | "tube", // tube Latin American Telecom LLC | |
1330 | "tui", // tui TUI AG | |
1331 | "tunes", // tunes Amazon Registry Services, Inc. | |
1332 | "tushu", // tushu Amazon Registry Services, Inc. | |
1333 | "tvs", // tvs T V SUNDRAM IYENGAR & SONS PRIVATE LIMITED | |
1334 | "ubank", // ubank National Australia Bank Limited | |
1335 | "ubs", // ubs UBS AG | |
1336 | "uconnect", // uconnect FCA US LLC. | |
1337 | "unicom", // unicom China United Network Communications Corporation Limited | |
1338 | "university", // university Little Station, LLC | |
1339 | "uno", // uno Dot Latin LLC | |
1340 | "uol", // uol UBN INTERNET LTDA. | |
1341 | "ups", // ups UPS Market Driver, Inc. | |
1342 | "vacations", // vacations Atomic Tigers, LLC | |
1343 | "vana", // vana Lifestyle Domain Holdings, Inc. | |
1344 | "vanguard", // vanguard The Vanguard Group, Inc. | |
1345 | "vegas", // vegas Dot Vegas, Inc. | |
1346 | "ventures", // ventures Binky Lake, LLC | |
1347 | "verisign", // verisign VeriSign, Inc. | |
1348 | "versicherung", // versicherung dotversicherung-registry GmbH | |
1349 | "vet", // vet United TLD Holdco, Ltd | |
1350 | "viajes", // viajes Black Madison, LLC | |
1351 | "video", // video United TLD Holdco, Ltd | |
1352 | "vig", // vig VIENNA INSURANCE GROUP AG Wiener Versicherung Gruppe | |
1353 | "viking", // viking Viking River Cruises (Bermuda) Ltd. | |
1354 | "villas", // villas New Sky, LLC | |
1355 | "vin", // vin Holly Shadow, LLC | |
1356 | "vip", // vip Minds + Machines Group Limited | |
1357 | "virgin", // virgin Virgin Enterprises Limited | |
1358 | "visa", // visa Visa Worldwide Pte. Limited | |
1359 | "vision", // vision Koko Station, LLC | |
1360 | "vista", // vista Vistaprint Limited | |
1361 | "vistaprint", // vistaprint Vistaprint Limited | |
1362 | "viva", // viva Saudi Telecom Company | |
1363 | "vivo", // vivo Telefonica Brasil S.A. | |
1364 | "vlaanderen", // vlaanderen DNS.be vzw | |
1365 | "vodka", // vodka Top Level Domain Holdings Limited | |
1366 | "volkswagen", // volkswagen Volkswagen Group of America Inc. | |
1367 | "volvo", // volvo Volvo Holding Sverige Aktiebolag | |
1368 | "vote", // vote Monolith Registry LLC | |
1369 | "voting", // voting Valuetainment Corp. | |
1370 | "voto", // voto Monolith Registry LLC | |
1371 | "voyage", // voyage Ruby House, LLC | |
1372 | "vuelos", // vuelos Travel Reservations SRL | |
1373 | "wales", // wales Nominet UK | |
1374 | "walmart", // walmart Wal-Mart Stores, Inc. | |
1375 | "walter", // walter Sandvik AB | |
1376 | "wang", // wang Zodiac Registry Limited | |
1377 | "wanggou", // wanggou Amazon Registry Services, Inc. | |
1378 | "warman", // warman Weir Group IP Limited | |
1379 | "watch", // watch Sand Shadow, LLC | |
1380 | "watches", // watches Richemont DNS Inc. | |
1381 | "weather", // weather The Weather Channel, LLC | |
1382 | "weatherchannel", // weatherchannel The Weather Channel, LLC | |
1383 | "webcam", // webcam dot Webcam Limited | |
1384 | "weber", // weber Saint-Gobain Weber SA | |
1385 | "website", // website DotWebsite Inc. | |
1386 | "wed", // wed Atgron, Inc. | |
1387 | "wedding", // wedding Top Level Domain Holdings Limited | |
1388 | "weibo", // weibo Sina Corporation | |
1389 | "weir", // weir Weir Group IP Limited | |
1390 | "whoswho", // whoswho Who's Who Registry | |
1391 | "wien", // wien punkt.wien GmbH | |
1392 | "wiki", // wiki Top Level Design, LLC | |
1393 | "williamhill", // williamhill William Hill Organization Limited | |
1394 | "win", // win First Registry Limited | |
1395 | "windows", // windows Microsoft Corporation | |
1396 | "wine", // wine June Station, LLC | |
1397 | "winners", // winners The TJX Companies, Inc. | |
1398 | "wme", // wme William Morris Endeavor Entertainment, LLC | |
1399 | "wolterskluwer", // wolterskluwer Wolters Kluwer N.V. | |
1400 | "woodside", // woodside Woodside Petroleum Limited | |
1401 | "work", // work Top Level Domain Holdings Limited | |
1402 | "works", // works Little Dynamite, LLC | |
1403 | "world", // world Bitter Fields, LLC | |
1404 | "wow", // wow Amazon Registry Services, Inc. | |
1405 | "wtc", // wtc World Trade Centers Association, Inc. | |
1406 | "wtf", // wtf Hidden Way, LLC | |
1407 | "xbox", // xbox Microsoft Corporation | |
1408 | "xerox", // xerox Xerox DNHC LLC | |
1409 | "xfinity", // xfinity Comcast IP Holdings I, LLC | |
1410 | "xihuan", // xihuan QIHOO 360 TECHNOLOGY CO. LTD. | |
1411 | "xin", // xin Elegant Leader Limited | |
1412 | "xn--11b4c3d", // कॉम VeriSign Sarl | |
1413 | "xn--1ck2e1b", // セール Amazon Registry Services, Inc. | |
1414 | "xn--1qqw23a", // 佛山 Guangzhou YU Wei Information Technology Co., Ltd. | |
1415 | "xn--30rr7y", // 慈善 Excellent First Limited | |
1416 | "xn--3bst00m", // 集团 Eagle Horizon Limited | |
1417 | "xn--3ds443g", // 在线 TLD REGISTRY LIMITED | |
1418 | "xn--3oq18vl8pn36a", // 大众汽车 Volkswagen (China) Investment Co., Ltd. | |
1419 | "xn--3pxu8k", // 点看 VeriSign Sarl | |
1420 | "xn--42c2d9a", // คอม VeriSign Sarl | |
1421 | "xn--45q11c", // 八卦 Zodiac Scorpio Limited | |
1422 | "xn--4gbrim", // موقع Suhub Electronic Establishment | |
1423 | "xn--55qw42g", // 公益 China Organizational Name Administration Center | |
1424 | "xn--55qx5d", // 公司 Computer Network Information Center of Chinese Academy of Sciences (China Internet Network Information Center) | |
1425 | "xn--5su34j936bgsg", // 香格里拉 Shangri‐La International Hotel Management Limited | |
1426 | "xn--5tzm5g", // 网站 Global Website TLD Asia Limited | |
1427 | "xn--6frz82g", // 移动 Afilias Limited | |
1428 | "xn--6qq986b3xl", // 我爱你 Tycoon Treasure Limited | |
1429 | "xn--80adxhks", // москва Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID) | |
1430 | "xn--80aqecdr1a", // католик Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) | |
1431 | "xn--80asehdb", // онлайн CORE Association | |
1432 | "xn--80aswg", // сайт CORE Association | |
1433 | "xn--8y0a063a", // 联通 China United Network Communications Corporation Limited | |
1434 | "xn--90ae", // бг Imena.BG Plc (NAMES.BG Plc) | |
1435 | "xn--9dbq2a", // קום VeriSign Sarl | |
1436 | "xn--9et52u", // 时尚 RISE VICTORY LIMITED | |
1437 | "xn--9krt00a", // 微博 Sina Corporation | |
1438 | "xn--b4w605ferd", // 淡马锡 Temasek Holdings (Private) Limited | |
1439 | "xn--bck1b9a5dre4c", // ファッション Amazon Registry Services, Inc. | |
1440 | "xn--c1avg", // орг Public Interest Registry | |
1441 | "xn--c2br7g", // नेट VeriSign Sarl | |
1442 | "xn--cck2b3b", // ストア Amazon Registry Services, Inc. | |
1443 | "xn--cg4bki", // 삼성 SAMSUNG SDS CO., LTD | |
1444 | "xn--czr694b", // 商标 HU YI GLOBAL INFORMATION RESOURCES(HOLDING) COMPANY.HONGKONG LIMITED | |
1445 | "xn--czrs0t", // 商店 Wild Island, LLC | |
1446 | "xn--czru2d", // 商城 Zodiac Aquarius Limited | |
1447 | "xn--d1acj3b", // дети The Foundation for Network Initiatives “The Smart Internet” | |
1448 | "xn--eckvdtc9d", // ポイント Amazon Registry Services, Inc. | |
1449 | "xn--efvy88h", // 新闻 Xinhua News Agency Guangdong Branch 新华通讯社广东分社 | |
1450 | "xn--estv75g", // 工行 Industrial and Commercial Bank of China Limited | |
1451 | "xn--fct429k", // 家電 Amazon Registry Services, Inc. | |
1452 | "xn--fhbei", // كوم VeriSign Sarl | |
1453 | "xn--fiq228c5hs", // 中文网 TLD REGISTRY LIMITED | |
1454 | "xn--fiq64b", // 中信 CITIC Group Corporation | |
1455 | "xn--fjq720a", // 娱乐 Will Bloom, LLC | |
1456 | "xn--flw351e", // 谷歌 Charleston Road Registry Inc. | |
1457 | "xn--fzys8d69uvgm", // 電訊盈科 PCCW Enterprises Limited | |
1458 | "xn--g2xx48c", // 购物 Minds + Machines Group Limited | |
1459 | "xn--gckr3f0f", // クラウド Amazon Registry Services, Inc. | |
1460 | "xn--gk3at1e", // 通販 Amazon Registry Services, Inc. | |
1461 | "xn--hxt814e", // 网店 Zodiac Libra Limited | |
1462 | "xn--i1b6b1a6a2e", // संगठन Public Interest Registry | |
1463 | "xn--imr513n", // 餐厅 HU YI GLOBAL INFORMATION RESOURCES (HOLDING) COMPANY. HONGKONG LIMITED | |
1464 | "xn--io0a7i", // 网络 Computer Network Information Center of Chinese Academy of Sciences (China Internet Network Information Center) | |
1465 | "xn--j1aef", // ком VeriSign Sarl | |
1466 | "xn--jlq61u9w7b", // 诺基亚 Nokia Corporation | |
1467 | "xn--jvr189m", // 食品 Amazon Registry Services, Inc. | |
1468 | "xn--kcrx77d1x4a", // 飞利浦 Koninklijke Philips N.V. | |
1469 | "xn--kpu716f", // 手表 Richemont DNS Inc. | |
1470 | "xn--kput3i", // 手机 Beijing RITT-Net Technology Development Co., Ltd | |
1471 | "xn--mgba3a3ejt", // ارامكو Aramco Services Company | |
1472 | "xn--mgba7c0bbn0a", // العليان Crescent Holding GmbH | |
1473 | "xn--mgbab2bd", // بازار CORE Association | |
1474 | "xn--mgbb9fbpob", // موبايلي GreenTech Consultancy Company W.L.L. | |
1475 | "xn--mgbca7dzdo", // ابوظبي Abu Dhabi Systems and Information Centre | |
1476 | "xn--mgbi4ecexp", // كاثوليك Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) | |
1477 | "xn--mgbt3dhd", // همراه Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. | |
1478 | "xn--mk1bu44c", // 닷컴 VeriSign Sarl | |
1479 | "xn--mxtq1m", // 政府 Net-Chinese Co., Ltd. | |
1480 | "xn--ngbc5azd", // شبكة International Domain Registry Pty. Ltd. | |
1481 | "xn--ngbe9e0a", // بيتك Kuwait Finance House | |
1482 | "xn--nqv7f", // 机构 Public Interest Registry | |
1483 | "xn--nqv7fs00ema", // 组织机构 Public Interest Registry | |
1484 | "xn--nyqy26a", // 健康 Stable Tone Limited | |
1485 | "xn--p1acf", // рус Rusnames Limited | |
1486 | "xn--pbt977c", // 珠宝 Richemont DNS Inc. | |
1487 | "xn--pssy2u", // 大拿 VeriSign Sarl | |
1488 | "xn--q9jyb4c", // みんな Charleston Road Registry Inc. | |
1489 | "xn--qcka1pmc", // グーグル Charleston Road Registry Inc. | |
1490 | "xn--rhqv96g", // 世界 Stable Tone Limited | |
1491 | "xn--rovu88b", // 書籍 Amazon EU S.à r.l. | |
1492 | "xn--ses554g", // 网址 KNET Co., Ltd | |
1493 | "xn--t60b56a", // 닷넷 VeriSign Sarl | |
1494 | "xn--tckwe", // コム VeriSign Sarl | |
1495 | "xn--tiq49xqyj", // 天主教 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) | |
1496 | "xn--unup4y", // 游戏 Spring Fields, LLC | |
1497 | "xn--vermgensberater-ctb", // VERMöGENSBERATER Deutsche Vermögensberatung Aktiengesellschaft DVAG | |
1498 | "xn--vermgensberatung-pwb", // VERMöGENSBERATUNG Deutsche Vermögensberatung Aktiengesellschaft DVAG | |
1499 | "xn--vhquv", // 企业 Dash McCook, LLC | |
1500 | "xn--vuq861b", // 信息 Beijing Tele-info Network Technology Co., Ltd. | |
1501 | "xn--w4r85el8fhu5dnra", // 嘉里大酒店 Kerry Trading Co. Limited | |
1502 | "xn--w4rs40l", // 嘉里 Kerry Trading Co. Limited | |
1503 | "xn--xhq521b", // 广东 Guangzhou YU Wei Information Technology Co., Ltd. | |
1504 | "xn--zfr164b", // 政务 China Organizational Name Administration Center | |
1505 | "xperia", // xperia Sony Mobile Communications AB | |
1506 | "xxx", // xxx ICM Registry LLC | |
1507 | "xyz", // xyz XYZ.COM LLC | |
1508 | "yachts", // yachts DERYachts, LLC | |
1509 | "yahoo", // yahoo Yahoo! Domain Services Inc. | |
1510 | "yamaxun", // yamaxun Amazon Registry Services, Inc. | |
1511 | "yandex", // yandex YANDEX, LLC | |
1512 | "yodobashi", // yodobashi YODOBASHI CAMERA CO.,LTD. | |
1513 | "yoga", // yoga Top Level Domain Holdings Limited | |
1514 | "yokohama", // yokohama GMO Registry, Inc. | |
1515 | "you", // you Amazon Registry Services, Inc. | |
1516 | "youtube", // youtube Charleston Road Registry Inc. | |
1517 | "yun", // yun QIHOO 360 TECHNOLOGY CO. LTD. | |
1518 | "zappos", // zappos Amazon Registry Services, Inc. | |
1519 | "zara", // zara Industria de Diseño Textil, S.A. (INDITEX, S.A.) | |
1520 | "zero", // zero Amazon Registry Services, Inc. | |
1521 | "zip", // zip Charleston Road Registry Inc. | |
1522 | "zippo", // zippo Zadco Company | |
1523 | "zone", // zone Outer Falls, LLC | |
1524 | "zuerich", // zuerich Kanton Zürich (Canton of Zurich) | |
1525 | }; | |
1526 | ||
1527 | // WARNING: this array MUST be sorted, otherwise it cannot be searched reliably using binary search | |
1528 | 1 | private static final String[] COUNTRY_CODE_TLDS = new String[] { |
1529 | "ac", // Ascension Island | |
1530 | "ad", // Andorra | |
1531 | "ae", // United Arab Emirates | |
1532 | "af", // Afghanistan | |
1533 | "ag", // Antigua and Barbuda | |
1534 | "ai", // Anguilla | |
1535 | "al", // Albania | |
1536 | "am", // Armenia | |
1537 | // "an", // Netherlands Antilles (retired) | |
1538 | "ao", // Angola | |
1539 | "aq", // Antarctica | |
1540 | "ar", // Argentina | |
1541 | "as", // American Samoa | |
1542 | "at", // Austria | |
1543 | "au", // Australia (includes Ashmore and Cartier Islands and Coral Sea Islands) | |
1544 | "aw", // Aruba | |
1545 | "ax", // Åland | |
1546 | "az", // Azerbaijan | |
1547 | "ba", // Bosnia and Herzegovina | |
1548 | "bb", // Barbados | |
1549 | "bd", // Bangladesh | |
1550 | "be", // Belgium | |
1551 | "bf", // Burkina Faso | |
1552 | "bg", // Bulgaria | |
1553 | "bh", // Bahrain | |
1554 | "bi", // Burundi | |
1555 | "bj", // Benin | |
1556 | "bm", // Bermuda | |
1557 | "bn", // Brunei Darussalam | |
1558 | "bo", // Bolivia | |
1559 | "br", // Brazil | |
1560 | "bs", // Bahamas | |
1561 | "bt", // Bhutan | |
1562 | "bv", // Bouvet Island | |
1563 | "bw", // Botswana | |
1564 | "by", // Belarus | |
1565 | "bz", // Belize | |
1566 | "ca", // Canada | |
1567 | "cc", // Cocos (Keeling) Islands | |
1568 | "cd", // Democratic Republic of the Congo (formerly Zaire) | |
1569 | "cf", // Central African Republic | |
1570 | "cg", // Republic of the Congo | |
1571 | "ch", // Switzerland | |
1572 | "ci", // Côte d'Ivoire | |
1573 | "ck", // Cook Islands | |
1574 | "cl", // Chile | |
1575 | "cm", // Cameroon | |
1576 | "cn", // China, mainland | |
1577 | "co", // Colombia | |
1578 | "cr", // Costa Rica | |
1579 | "cu", // Cuba | |
1580 | "cv", // Cape Verde | |
1581 | "cw", // Curaçao | |
1582 | "cx", // Christmas Island | |
1583 | "cy", // Cyprus | |
1584 | "cz", // Czech Republic | |
1585 | "de", // Germany | |
1586 | "dj", // Djibouti | |
1587 | "dk", // Denmark | |
1588 | "dm", // Dominica | |
1589 | "do", // Dominican Republic | |
1590 | "dz", // Algeria | |
1591 | "ec", // Ecuador | |
1592 | "ee", // Estonia | |
1593 | "eg", // Egypt | |
1594 | "er", // Eritrea | |
1595 | "es", // Spain | |
1596 | "et", // Ethiopia | |
1597 | "eu", // European Union | |
1598 | "fi", // Finland | |
1599 | "fj", // Fiji | |
1600 | "fk", // Falkland Islands | |
1601 | "fm", // Federated States of Micronesia | |
1602 | "fo", // Faroe Islands | |
1603 | "fr", // France | |
1604 | "ga", // Gabon | |
1605 | "gb", // Great Britain (United Kingdom) | |
1606 | "gd", // Grenada | |
1607 | "ge", // Georgia | |
1608 | "gf", // French Guiana | |
1609 | "gg", // Guernsey | |
1610 | "gh", // Ghana | |
1611 | "gi", // Gibraltar | |
1612 | "gl", // Greenland | |
1613 | "gm", // The Gambia | |
1614 | "gn", // Guinea | |
1615 | "gp", // Guadeloupe | |
1616 | "gq", // Equatorial Guinea | |
1617 | "gr", // Greece | |
1618 | "gs", // South Georgia and the South Sandwich Islands | |
1619 | "gt", // Guatemala | |
1620 | "gu", // Guam | |
1621 | "gw", // Guinea-Bissau | |
1622 | "gy", // Guyana | |
1623 | "hk", // Hong Kong | |
1624 | "hm", // Heard Island and McDonald Islands | |
1625 | "hn", // Honduras | |
1626 | "hr", // Croatia (Hrvatska) | |
1627 | "ht", // Haiti | |
1628 | "hu", // Hungary | |
1629 | "id", // Indonesia | |
1630 | "ie", // Ireland (Éire) | |
1631 | "il", // Israel | |
1632 | "im", // Isle of Man | |
1633 | "in", // India | |
1634 | "io", // British Indian Ocean Territory | |
1635 | "iq", // Iraq | |
1636 | "ir", // Iran | |
1637 | "is", // Iceland | |
1638 | "it", // Italy | |
1639 | "je", // Jersey | |
1640 | "jm", // Jamaica | |
1641 | "jo", // Jordan | |
1642 | "jp", // Japan | |
1643 | "ke", // Kenya | |
1644 | "kg", // Kyrgyzstan | |
1645 | "kh", // Cambodia (Khmer) | |
1646 | "ki", // Kiribati | |
1647 | "km", // Comoros | |
1648 | "kn", // Saint Kitts and Nevis | |
1649 | "kp", // North Korea | |
1650 | "kr", // South Korea | |
1651 | "kw", // Kuwait | |
1652 | "ky", // Cayman Islands | |
1653 | "kz", // Kazakhstan | |
1654 | "la", // Laos (currently being marketed as the official domain for Los Angeles) | |
1655 | "lb", // Lebanon | |
1656 | "lc", // Saint Lucia | |
1657 | "li", // Liechtenstein | |
1658 | "lk", // Sri Lanka | |
1659 | "lr", // Liberia | |
1660 | "ls", // Lesotho | |
1661 | "lt", // Lithuania | |
1662 | "lu", // Luxembourg | |
1663 | "lv", // Latvia | |
1664 | "ly", // Libya | |
1665 | "ma", // Morocco | |
1666 | "mc", // Monaco | |
1667 | "md", // Moldova | |
1668 | "me", // Montenegro | |
1669 | "mg", // Madagascar | |
1670 | "mh", // Marshall Islands | |
1671 | "mk", // Republic of Macedonia | |
1672 | "ml", // Mali | |
1673 | "mm", // Myanmar | |
1674 | "mn", // Mongolia | |
1675 | "mo", // Macau | |
1676 | "mp", // Northern Mariana Islands | |
1677 | "mq", // Martinique | |
1678 | "mr", // Mauritania | |
1679 | "ms", // Montserrat | |
1680 | "mt", // Malta | |
1681 | "mu", // Mauritius | |
1682 | "mv", // Maldives | |
1683 | "mw", // Malawi | |
1684 | "mx", // Mexico | |
1685 | "my", // Malaysia | |
1686 | "mz", // Mozambique | |
1687 | "na", // Namibia | |
1688 | "nc", // New Caledonia | |
1689 | "ne", // Niger | |
1690 | "nf", // Norfolk Island | |
1691 | "ng", // Nigeria | |
1692 | "ni", // Nicaragua | |
1693 | "nl", // Netherlands | |
1694 | "no", // Norway | |
1695 | "np", // Nepal | |
1696 | "nr", // Nauru | |
1697 | "nu", // Niue | |
1698 | "nz", // New Zealand | |
1699 | "om", // Oman | |
1700 | "pa", // Panama | |
1701 | "pe", // Peru | |
1702 | "pf", // French Polynesia With Clipperton Island | |
1703 | "pg", // Papua New Guinea | |
1704 | "ph", // Philippines | |
1705 | "pk", // Pakistan | |
1706 | "pl", // Poland | |
1707 | "pm", // Saint-Pierre and Miquelon | |
1708 | "pn", // Pitcairn Islands | |
1709 | "pr", // Puerto Rico | |
1710 | "ps", // Palestinian territories (PA-controlled West Bank and Gaza Strip) | |
1711 | "pt", // Portugal | |
1712 | "pw", // Palau | |
1713 | "py", // Paraguay | |
1714 | "qa", // Qatar | |
1715 | "re", // Réunion | |
1716 | "ro", // Romania | |
1717 | "rs", // Serbia | |
1718 | "ru", // Russia | |
1719 | "rw", // Rwanda | |
1720 | "sa", // Saudi Arabia | |
1721 | "sb", // Solomon Islands | |
1722 | "sc", // Seychelles | |
1723 | "sd", // Sudan | |
1724 | "se", // Sweden | |
1725 | "sg", // Singapore | |
1726 | "sh", // Saint Helena | |
1727 | "si", // Slovenia | |
1728 | "sj", // Svalbard and Jan Mayen Islands Not in use (Norwegian dependencies; see .no) | |
1729 | "sk", // Slovakia | |
1730 | "sl", // Sierra Leone | |
1731 | "sm", // San Marino | |
1732 | "sn", // Senegal | |
1733 | "so", // Somalia | |
1734 | "sr", // Suriname | |
1735 | "st", // São Tomé and Príncipe | |
1736 | "su", // Soviet Union (deprecated) | |
1737 | "sv", // El Salvador | |
1738 | "sx", // Sint Maarten | |
1739 | "sy", // Syria | |
1740 | "sz", // Swaziland | |
1741 | "tc", // Turks and Caicos Islands | |
1742 | "td", // Chad | |
1743 | "tf", // French Southern and Antarctic Lands | |
1744 | "tg", // Togo | |
1745 | "th", // Thailand | |
1746 | "tj", // Tajikistan | |
1747 | "tk", // Tokelau | |
1748 | "tl", // East Timor (deprecated old code) | |
1749 | "tm", // Turkmenistan | |
1750 | "tn", // Tunisia | |
1751 | "to", // Tonga | |
1752 | // "tp", // East Timor (Retired) | |
1753 | "tr", // Turkey | |
1754 | "tt", // Trinidad and Tobago | |
1755 | "tv", // Tuvalu | |
1756 | "tw", // Taiwan, Republic of China | |
1757 | "tz", // Tanzania | |
1758 | "ua", // Ukraine | |
1759 | "ug", // Uganda | |
1760 | "uk", // United Kingdom | |
1761 | "us", // United States of America | |
1762 | "uy", // Uruguay | |
1763 | "uz", // Uzbekistan | |
1764 | "va", // Vatican City State | |
1765 | "vc", // Saint Vincent and the Grenadines | |
1766 | "ve", // Venezuela | |
1767 | "vg", // British Virgin Islands | |
1768 | "vi", // U.S. Virgin Islands | |
1769 | "vn", // Vietnam | |
1770 | "vu", // Vanuatu | |
1771 | "wf", // Wallis and Futuna | |
1772 | "ws", // Samoa (formerly Western Samoa) | |
1773 | "xn--3e0b707e", // 한국 KISA (Korea Internet & Security Agency) | |
1774 | "xn--45brj9c", // ভারত National Internet Exchange of India | |
1775 | "xn--54b7fta0cc", // বাংলা Posts and Telecommunications Division | |
1776 | "xn--80ao21a", // қаз Association of IT Companies of Kazakhstan | |
1777 | "xn--90a3ac", // срб Serbian National Internet Domain Registry (RNIDS) | |
1778 | "xn--90ais", // ??? Reliable Software Inc. | |
1779 | "xn--clchc0ea0b2g2a9gcd", // சிங்கப்பூர் Singapore Network Information Centre (SGNIC) Pte Ltd | |
1780 | "xn--d1alf", // мкд Macedonian Academic Research Network Skopje | |
1781 | "xn--e1a4c", // ею EURid vzw/asbl | |
1782 | "xn--fiqs8s", // 中国 China Internet Network Information Center | |
1783 | "xn--fiqz9s", // 中國 China Internet Network Information Center | |
1784 | "xn--fpcrj9c3d", // భారత్ National Internet Exchange of India | |
1785 | "xn--fzc2c9e2c", // ලංකා LK Domain Registry | |
1786 | "xn--gecrj9c", // ભારત National Internet Exchange of India | |
1787 | "xn--h2brj9c", // भारत National Internet Exchange of India | |
1788 | "xn--j1amh", // укр Ukrainian Network Information Centre (UANIC), Inc. | |
1789 | "xn--j6w193g", // 香港 Hong Kong Internet Registration Corporation Ltd. | |
1790 | "xn--kprw13d", // 台湾 Taiwan Network Information Center (TWNIC) | |
1791 | "xn--kpry57d", // 台灣 Taiwan Network Information Center (TWNIC) | |
1792 | "xn--l1acc", // мон Datacom Co.,Ltd | |
1793 | "xn--lgbbat1ad8j", // الجزائر CERIST | |
1794 | "xn--mgb9awbf", // عمان Telecommunications Regulatory Authority (TRA) | |
1795 | "xn--mgba3a4f16a", // ایران Institute for Research in Fundamental Sciences (IPM) | |
1796 | "xn--mgbaam7a8h", // امارات Telecommunications Regulatory Authority (TRA) | |
1797 | "xn--mgbayh7gpa", // الاردن National Information Technology Center (NITC) | |
1798 | "xn--mgbbh1a71e", // بھارت National Internet Exchange of India | |
1799 | "xn--mgbc0a9azcg", // المغرب Agence Nationale de Réglementation des Télécommunications (ANRT) | |
1800 | "xn--mgberp4a5d4ar", // السعودية Communications and Information Technology Commission | |
1801 | "xn--mgbpl2fh", // ????? Sudan Internet Society | |
1802 | "xn--mgbtx2b", // عراق Communications and Media Commission (CMC) | |
1803 | "xn--mgbx4cd0ab", // مليسيا MYNIC Berhad | |
1804 | "xn--mix891f", // 澳門 Bureau of Telecommunications Regulation (DSRT) | |
1805 | "xn--node", // გე Information Technologies Development Center (ITDC) | |
1806 | "xn--o3cw4h", // ไทย Thai Network Information Center Foundation | |
1807 | "xn--ogbpf8fl", // سورية National Agency for Network Services (NANS) | |
1808 | "xn--p1ai", // рф Coordination Center for TLD RU | |
1809 | "xn--pgbs0dh", // تونس Agence Tunisienne d'Internet | |
1810 | "xn--qxam", // ελ ICS-FORTH GR | |
1811 | "xn--s9brj9c", // ਭਾਰਤ National Internet Exchange of India | |
1812 | "xn--wgbh1c", // مصر National Telecommunication Regulatory Authority - NTRA | |
1813 | "xn--wgbl6a", // قطر Communications Regulatory Authority | |
1814 | "xn--xkc2al3hye2a", // இலங்கை LK Domain Registry | |
1815 | "xn--xkc2dl3a5ee0h", // இந்தியா National Internet Exchange of India | |
1816 | "xn--y9a3aq", // ??? Internet Society | |
1817 | "xn--yfro4i67o", // 新加坡 Singapore Network Information Centre (SGNIC) Pte Ltd | |
1818 | "xn--ygbi2ammx", // فلسطين Ministry of Telecom & Information Technology (MTIT) | |
1819 | "ye", // Yemen | |
1820 | "yt", // Mayotte | |
1821 | "za", // South Africa | |
1822 | "zm", // Zambia | |
1823 | "zw", // Zimbabwe | |
1824 | }; | |
1825 | ||
1826 | // WARNING: this array MUST be sorted, otherwise it cannot be searched reliably using binary search | |
1827 | 1 | private static final String[] LOCAL_TLDS = new String[] { |
1828 | "localdomain", // Also widely used as localhost.localdomain | |
1829 | "localhost", // RFC2606 defined | |
1830 | }; | |
1831 | ||
1832 | // Additional arrays to supplement or override the built in ones. | |
1833 | // The PLUS arrays are valid keys, the MINUS arrays are invalid keys | |
1834 | ||
1835 | /* | |
1836 | * This field is used to detect whether the getInstance has been called. | |
1837 | * After this, the method updateTLDOverride is not allowed to be called. | |
1838 | * This field does not need to be volatile since it is only accessed from | |
1839 | * synchronized methods. | |
1840 | */ | |
1841 | 1 | private static boolean inUse = false; |
1842 | ||
1843 | /* | |
1844 | * These arrays are mutable, but they don't need to be volatile. | |
1845 | * They can only be updated by the updateTLDOverride method, and any readers must get an instance | |
1846 | * using the getInstance methods which are all (now) synchronised. | |
1847 | */ | |
1848 | // WARNING: this array MUST be sorted, otherwise it cannot be searched reliably using binary search | |
1849 | 1 | private static volatile String[] countryCodeTLDsPlus = EMPTY_STRING_ARRAY; |
1850 | ||
1851 | // WARNING: this array MUST be sorted, otherwise it cannot be searched reliably using binary search | |
1852 | 1 | private static volatile String[] genericTLDsPlus = EMPTY_STRING_ARRAY; |
1853 | ||
1854 | // WARNING: this array MUST be sorted, otherwise it cannot be searched reliably using binary search | |
1855 | 1 | private static volatile String[] countryCodeTLDsMinus = EMPTY_STRING_ARRAY; |
1856 | ||
1857 | // WARNING: this array MUST be sorted, otherwise it cannot be searched reliably using binary search | |
1858 | 1 | private static volatile String[] genericTLDsMinus = EMPTY_STRING_ARRAY; |
1859 | ||
1860 | /** | |
1861 | * enum used by {@link DomainValidator#updateTLDOverride(ArrayType, String[])} | |
1862 | * to determine which override array to update / fetch | |
1863 | * @since 1.5.0 | |
1864 | * @since 1.5.1 made public and added read-only array references | |
1865 | */ | |
1866 | 12 | public enum ArrayType { |
1867 | /** Update (or get a copy of) the GENERIC_TLDS_PLUS table containing additonal generic TLDs */ | |
1868 | 1 | GENERIC_PLUS, |
1869 | /** Update (or get a copy of) the GENERIC_TLDS_MINUS table containing deleted generic TLDs */ | |
1870 | 1 | GENERIC_MINUS, |
1871 | /** Update (or get a copy of) the COUNTRY_CODE_TLDS_PLUS table containing additonal country code TLDs */ | |
1872 | 1 | COUNTRY_CODE_PLUS, |
1873 | /** Update (or get a copy of) the COUNTRY_CODE_TLDS_MINUS table containing deleted country code TLDs */ | |
1874 | 1 | COUNTRY_CODE_MINUS, |
1875 | /** Get a copy of the generic TLDS table */ | |
1876 | 1 | GENERIC_RO, |
1877 | /** Get a copy of the country code table */ | |
1878 | 1 | COUNTRY_CODE_RO, |
1879 | /** Get a copy of the infrastructure table */ | |
1880 | 1 | INFRASTRUCTURE_RO, |
1881 | /** Get a copy of the local table */ | |
1882 | 1 | LOCAL_RO |
1883 | ; | |
1884 | }; | |
1885 | ||
1886 | // For use by unit test code only | |
1887 | static synchronized void clearTLDOverrides() { | |
1888 | 24 | inUse = false; |
1889 | 24 | countryCodeTLDsPlus = EMPTY_STRING_ARRAY; |
1890 | 24 | countryCodeTLDsMinus = EMPTY_STRING_ARRAY; |
1891 | 24 | genericTLDsPlus = EMPTY_STRING_ARRAY; |
1892 | 24 | genericTLDsMinus = EMPTY_STRING_ARRAY; |
1893 | 24 | } |
1894 | /** | |
1895 | * Update one of the TLD override arrays. | |
1896 | * This must only be done at program startup, before any instances are accessed using getInstance. | |
1897 | * <p> | |
1898 | * For example: | |
1899 | * <p> | |
1900 | * {@code DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, new String[]{"apache"})} | |
1901 | * <p> | |
1902 | * To clear an override array, provide an empty array. | |
1903 | * | |
1904 | * @param table the table to update, see {@link DomainValidator.ArrayType} | |
1905 | * Must be one of the following | |
1906 | * <ul> | |
1907 | * <li>COUNTRY_CODE_MINUS</li> | |
1908 | * <li>COUNTRY_CODE_PLUS</li> | |
1909 | * <li>GENERIC_MINUS</li> | |
1910 | * <li>GENERIC_PLUS</li> | |
1911 | * </ul> | |
1912 | * @param tlds the array of TLDs, must not be null | |
1913 | * @throws IllegalStateException if the method is called after getInstance | |
1914 | * @throws IllegalArgumentException if one of the read-only tables is requested | |
1915 | * @since 1.5.0 | |
1916 | */ | |
1917 | public static synchronized void updateTLDOverride(ArrayType table, String [] tlds) { | |
1918 | 15 | if (inUse) { |
1919 | 1 | throw new IllegalStateException("Can only invoke this method before calling getInstance"); |
1920 | } | |
1921 | 14 | String [] copy = new String[tlds.length]; |
1922 | // Comparisons are always done with lower-case entries | |
1923 | 29 | for (int i = 0; i < tlds.length; i++) { |
1924 | 15 | copy[i] = tlds[i].toLowerCase(Locale.ENGLISH); |
1925 | } | |
1926 | 14 | Arrays.sort(copy); |
1927 | 14 | switch(table) { |
1928 | case COUNTRY_CODE_MINUS: | |
1929 | 3 | countryCodeTLDsMinus = copy; |
1930 | 3 | break; |
1931 | case COUNTRY_CODE_PLUS: | |
1932 | 1 | countryCodeTLDsPlus = copy; |
1933 | 1 | break; |
1934 | case GENERIC_MINUS: | |
1935 | 3 | genericTLDsMinus = copy; |
1936 | 3 | break; |
1937 | case GENERIC_PLUS: | |
1938 | 3 | genericTLDsPlus = copy; |
1939 | 3 | break; |
1940 | case COUNTRY_CODE_RO: | |
1941 | case GENERIC_RO: | |
1942 | case INFRASTRUCTURE_RO: | |
1943 | case LOCAL_RO: | |
1944 | 4 | throw new IllegalArgumentException("Cannot update the table: " + table); |
1945 | default: | |
1946 | 0 | throw new IllegalArgumentException("Unexpected enum value: " + table); |
1947 | } | |
1948 | 10 | } |
1949 | ||
1950 | /** | |
1951 | * Get a copy of the internal array. | |
1952 | * @param table the array type (any of the enum values) | |
1953 | * @return a copy of the array | |
1954 | * @throws IllegalArgumentException if the table type is unexpected (should not happen) | |
1955 | * @since 1.5.1 | |
1956 | */ | |
1957 | public static String [] getTLDEntries(ArrayType table) { | |
1958 | final String array[]; | |
1959 | 8 | switch(table) { |
1960 | case COUNTRY_CODE_MINUS: | |
1961 | 1 | array = countryCodeTLDsMinus; |
1962 | 1 | break; |
1963 | case COUNTRY_CODE_PLUS: | |
1964 | 1 | array = countryCodeTLDsPlus; |
1965 | 1 | break; |
1966 | case GENERIC_MINUS: | |
1967 | 1 | array = genericTLDsMinus; |
1968 | 1 | break; |
1969 | case GENERIC_PLUS: | |
1970 | 1 | array = genericTLDsPlus; |
1971 | 1 | break; |
1972 | case GENERIC_RO: | |
1973 | 1 | array = GENERIC_TLDS; |
1974 | 1 | break; |
1975 | case COUNTRY_CODE_RO: | |
1976 | 1 | array = COUNTRY_CODE_TLDS; |
1977 | 1 | break; |
1978 | case INFRASTRUCTURE_RO: | |
1979 | 1 | array = INFRASTRUCTURE_TLDS; |
1980 | 1 | break; |
1981 | case LOCAL_RO: | |
1982 | 1 | array = LOCAL_TLDS; |
1983 | 1 | break; |
1984 | default: | |
1985 | 0 | throw new IllegalArgumentException("Unexpected enum value: " + table); |
1986 | } | |
1987 | 8 | return Arrays.copyOf(array, array.length); // clone the array |
1988 | } | |
1989 | ||
1990 | /** | |
1991 | * Converts potentially Unicode input to punycode. | |
1992 | * If conversion fails, returns the original input. | |
1993 | * | |
1994 | * @param input the string to convert, not null | |
1995 | * @return converted input, or original input if conversion fails | |
1996 | */ | |
1997 | // Needed by UrlValidator | |
1998 | static String unicodeToASCII(String input) { | |
1999 | 139059 | if (isOnlyASCII(input)) { // skip possibly expensive processing |
2000 | 139033 | return input; |
2001 | } | |
2002 | try { | |
2003 | 26 | final String ascii = IDN.toASCII(input); |
2004 | 19 | if (IDNBUGHOLDER.IDN_TOASCII_PRESERVES_TRAILING_DOTS) { |
2005 | 0 | return ascii; |
2006 | } | |
2007 | 19 | final int length = input.length(); |
2008 | 19 | if (length == 0) {// check there is a last character |
2009 | 0 | return input; |
2010 | } | |
2011 | // RFC3490 3.1. 1) | |
2012 | // Whenever dots are used as label separators, the following | |
2013 | // characters MUST be recognized as dots: U+002E (full stop), U+3002 | |
2014 | // (ideographic full stop), U+FF0E (fullwidth full stop), U+FF61 | |
2015 | // (halfwidth ideographic full stop). | |
2016 | 19 | char lastChar = input.charAt(length-1);// fetch original last char |
2017 | 19 | switch(lastChar) { |
2018 | case '\u002E': // "." full stop | |
2019 | case '\u3002': // ideographic full stop | |
2020 | case '\uFF0E': // fullwidth full stop | |
2021 | case '\uFF61': // halfwidth ideographic full stop | |
2022 | 10 | return ascii + "."; // restore the missing stop |
2023 | default: | |
2024 | 9 | return ascii; |
2025 | } | |
2026 | 7 | } catch (IllegalArgumentException e) { // input is not valid |
2027 | 7 | return input; |
2028 | } | |
2029 | } | |
2030 | ||
2031 | 19 | private static class IDNBUGHOLDER { |
2032 | private static boolean keepsTrailingDot() { | |
2033 | 1 | final String input = "a."; // must be a valid name |
2034 | 1 | return input.equals(IDN.toASCII(input)); |
2035 | } | |
2036 | 1 | private static final boolean IDN_TOASCII_PRESERVES_TRAILING_DOTS = keepsTrailingDot(); |
2037 | } | |
2038 | ||
2039 | /* | |
2040 | * Check if input contains only ASCII | |
2041 | * Treats null as all ASCII | |
2042 | */ | |
2043 | private static boolean isOnlyASCII(String input) { | |
2044 | 139059 | if (input == null) { |
2045 | 0 | return true; |
2046 | } | |
2047 | 1099591 | for(int i=0; i < input.length(); i++) { |
2048 | 960558 | if (input.charAt(i) > 0x7F) { // CHECKSTYLE IGNORE MagicNumber |
2049 | 26 | return false; |
2050 | } | |
2051 | } | |
2052 | 139033 | return true; |
2053 | } | |
2054 | ||
2055 | /** | |
2056 | * Check if a sorted array contains the specified key | |
2057 | * | |
2058 | * @param sortedArray the array to search | |
2059 | * @param key the key to find | |
2060 | * @return {@code true} if the array contains the key | |
2061 | */ | |
2062 | private static boolean arrayContains(String[] sortedArray, String key) { | |
2063 | 65669 | return Arrays.binarySearch(sortedArray, key) >= 0; |
2064 | } | |
2065 | } |