Read in all TLDs from a file
authorEvgeni Kunev <evgeni.kunev@gmail.com>
Tue, 12 Aug 2014 12:51:51 +0300
changeset 29 1ebe960587b1
parent 28 e94a8b50235d
child 30 0ebff1cb6c75
Read in all TLDs from a file File taken from https://data.iana.org/TLD/tlds-alpha-by-domain.txt
whois/__init__.py
whois/tlds.txt
--- a/whois/__init__.py	Tue Aug 12 21:21:25 2014 +0200
+++ b/whois/__init__.py	Tue Aug 12 12:51:51 2014 +0300
@@ -1,5 +1,6 @@
 import re
 import sys
+import os
 import subprocess
 import socket
 from parser import WhoisEntry
@@ -44,7 +45,13 @@
         # this is an IP address
         return socket.gethostbyaddr(url)[0]
 
-    suffixes = 'ac', 'ad', 'ae', 'aero', 'af', 'ag', 'ai', 'al', 'am', 'an', 'ao', 'aq', 'ar', 'arpa', 'as', 'asia', 'at', 'au', 'aw', 'ax', 'az', 'ba', 'bb', 'bd', 'be', 'bf', 'bg', 'bh', 'bi', 'biz', 'bj', 'bm', 'bn', 'bo', 'br', 'bs', 'bt', 'bv', 'bw', 'by', 'bz', 'ca', 'cat', 'cc', 'cd', 'cf', 'cg', 'ch', 'ci', 'ck', 'cl', 'cm', 'cn', 'co', 'com', 'coop', 'cr', 'cu', 'cv', 'cx', 'cy', 'cz', 'de', 'dj', 'dk', 'dm', 'do', 'dz', 'ec', 'edu', 'ee', 'eg', 'er', 'es', 'et', 'eu', 'fi', 'fj', 'fk', 'fm', 'fo', 'fr', 'ga', 'gb', 'gd', 'ge', 'gf', 'gg', 'gh', 'gi', 'gl', 'gm', 'gn', 'gov', 'gp', 'gq', 'gr', 'gs', 'gt', 'gu', 'gw', 'gy', 'hk', 'hm', 'hn', 'hr', 'ht', 'hu', 'id', 'ie', 'il', 'im', 'in', 'info', 'int', 'io', 'iq', 'ir', 'is', 'it', 'je', 'jm', 'jo', 'jobs', 'jp', 'ke', 'kg', 'kh', 'ki', 'km', 'kn', 'kp', 'kr', 'kw', 'ky', 'kz', 'la', 'lb', 'lc', 'li', 'lk', 'lr', 'ls', 'lt', 'lu', 'lv', 'ly', 'ma', 'mc', 'md', 'me', 'mg', 'mh', 'mil', 'mk', 'ml', 'mm', 'mn', 'mo', 'mobi', 'mp', 'mq', 'mr', 'ms', 'mt', 'mu', 'mv', 'mw', 'mx', 'my', 'mz', 'na', 'name', 'nc', 'ne', 'net', 'nf', 'ng', 'ni', 'nl', 'no', 'np', 'nr', 'nu', 'nz', 'om', 'org', 'pa', 'pe', 'pf', 'pg', 'ph', 'pk', 'pl', 'pm', 'pn', 'pr', 'pro', 'ps', 'pt', 'pw', 'py', 'qa', 're', 'ro', 'rs', 'ru', 'rw', 'sa', 'sb', 'sc', 'sd', 'se', 'sg', 'sh', 'si', 'sj', 'sk', 'sl', 'sm', 'sn', 'so', 'sr', 'st', 'su', 'sv', 'sy', 'sz', 'tc', 'td', 'tel', 'tf', 'tg', 'th', 'tj', 'tk', 'tl', 'tm', 'tn', 'to', 'tp', 'tr', 'tt', 'tv', 'tw', 'tz', 'ua', 'ug', 'uk', 'us', 'uy', 'uz', 'va', 'vc', 've', 'vg', 'vi', 'vn', 'vu', 'wf', 'ws', 'xn', 'ye', 'yt', 'za', 'zm', 'zw'
+    tlds_path = os.path.join(os.getcwd(), os.path.dirname(__file__), 'tlds.txt')
+    suffixes = [
+        line.lower().strip()
+        for line in open(tlds_path).readlines()
+        if not line.startswith('#')
+    ]
+
     url = re.sub('^.*://', '', url).split('/')[0].lower()
     domain = []
     for section in url.split('.'):
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/whois/tlds.txt	Tue Aug 12 12:51:51 2014 +0300
@@ -0,0 +1,664 @@
+# Version 2014081200, Last Updated Tue Aug 12 07:07:01 2014 UTC
+AC
+ACADEMY
+ACCOUNTANTS
+ACTIVE
+ACTOR
+AD
+AE
+AERO
+AF
+AG
+AGENCY
+AI
+AIRFORCE
+AL
+AM
+AN
+AO
+AQ
+AR
+ARCHI
+ARMY
+ARPA
+AS
+ASIA
+ASSOCIATES
+AT
+ATTORNEY
+AU
+AUCTION
+AUDIO
+AUTOS
+AW
+AX
+AXA
+AZ
+BA
+BAR
+BARGAINS
+BAYERN
+BB
+BD
+BE
+BEER
+BERLIN
+BEST
+BF
+BG
+BH
+BI
+BID
+BIKE
+BIO
+BIZ
+BJ
+BLACK
+BLACKFRIDAY
+BLUE
+BM
+BMW
+BN
+BO
+BOUTIQUE
+BR
+BRUSSELS
+BS
+BT
+BUILD
+BUILDERS
+BUZZ
+BV
+BW
+BY
+BZ
+BZH
+CA
+CAB
+CAMERA
+CAMP
+CANCERRESEARCH
+CAPETOWN
+CAPITAL
+CARDS
+CARE
+CAREER
+CAREERS
+CASH
+CAT
+CATERING
+CC
+CD
+CENTER
+CEO
+CF
+CG
+CH
+CHEAP
+CHRISTMAS
+CHURCH
+CI
+CITIC
+CITY
+CK
+CL
+CLAIMS
+CLEANING
+CLINIC
+CLOTHING
+CLUB
+CM
+CN
+CO
+CODES
+COFFEE
+COLLEGE
+COLOGNE
+COM
+COMMUNITY
+COMPANY
+COMPUTER
+CONDOS
+CONSTRUCTION
+CONSULTING
+CONTRACTORS
+COOKING
+COOL
+COOP
+COUNTRY
+CR
+CREDIT
+CREDITCARD
+CRUISES
+CU
+CUISINELLA
+CV
+CW
+CX
+CY
+CYMRU
+CZ
+DANCE
+DATING
+DE
+DEALS
+DEGREE
+DEMOCRAT
+DENTAL
+DENTIST
+DESI
+DIAMONDS
+DIGITAL
+DIRECT
+DIRECTORY
+DISCOUNT
+DJ
+DK
+DM
+DNP
+DO
+DOMAINS
+DURBAN
+DZ
+EC
+EDU
+EDUCATION
+EE
+EG
+EMAIL
+ENGINEER
+ENGINEERING
+ENTERPRISES
+EQUIPMENT
+ER
+ES
+ESTATE
+ET
+EU
+EUS
+EVENTS
+EXCHANGE
+EXPERT
+EXPOSED
+FAIL
+FARM
+FEEDBACK
+FI
+FINANCE
+FINANCIAL
+FISH
+FISHING
+FITNESS
+FJ
+FK
+FLIGHTS
+FLORIST
+FM
+FO
+FOO
+FOUNDATION
+FR
+FROGANS
+FUND
+FURNITURE
+FUTBOL
+GA
+GAL
+GALLERY
+GB
+GD
+GE
+GENT
+GF
+GG
+GH
+GI
+GIFT
+GIFTS
+GIVES
+GL
+GLASS
+GLOBAL
+GLOBO
+GM
+GMO
+GN
+GOP
+GOV
+GP
+GQ
+GR
+GRAPHICS
+GRATIS
+GREEN
+GRIPE
+GS
+GT
+GU
+GUIDE
+GUITARS
+GURU
+GW
+GY
+HAMBURG
+HAUS
+HEALTHCARE
+HIPHOP
+HIV
+HK
+HM
+HN
+HOLDINGS
+HOLIDAY
+HOMES
+HORSE
+HOST
+HOUSE
+HR
+HT
+HU
+ID
+IE
+IL
+IM
+IMMOBILIEN
+IN
+INDUSTRIES
+INFO
+INK
+INSTITUTE
+INSURE
+INT
+INTERNATIONAL
+INVESTMENTS
+IO
+IQ
+IR
+IS
+IT
+JE
+JETZT
+JM
+JO
+JOBS
+JOBURG
+JP
+JUEGOS
+KAUFEN
+KE
+KG
+KH
+KI
+KIM
+KITCHEN
+KIWI
+KM
+KN
+KOELN
+KP
+KR
+KRD
+KRED
+KW
+KY
+KZ
+LA
+LACAIXA
+LAND
+LAWYER
+LB
+LC
+LEASE
+LGBT
+LI
+LIFE
+LIGHTING
+LIMITED
+LIMO
+LINK
+LK
+LOANS
+LONDON
+LOTTO
+LR
+LS
+LT
+LU
+LUXE
+LUXURY
+LV
+LY
+MA
+MAISON
+MANAGEMENT
+MANGO
+MARKET
+MARKETING
+MC
+MD
+ME
+MEDIA
+MEET
+MELBOURNE
+MENU
+MG
+MH
+MIAMI
+MIL
+MINI
+MK
+ML
+MM
+MN
+MO
+MOBI
+MODA
+MOE
+MONASH
+MORTGAGE
+MOSCOW
+MOTORCYCLES
+MP
+MQ
+MR
+MS
+MT
+MU
+MUSEUM
+MV
+MW
+MX
+MY
+MZ
+NA
+NAGOYA
+NAME
+NAVY
+NC
+NE
+NET
+NEUSTAR
+NF
+NG
+NGO
+NHK
+NI
+NINJA
+NL
+NO
+NP
+NR
+NRA
+NRW
+NU
+NYC
+NZ
+OKINAWA
+OM
+ONG
+ONL
+ORG
+ORGANIC
+OVH
+PA
+PARIS
+PARTNERS
+PARTS
+PE
+PF
+PG
+PH
+PHOTO
+PHOTOGRAPHY
+PHOTOS
+PHYSIO
+PICS
+PICTURES
+PINK
+PK
+PL
+PLACE
+PLUMBING
+PM
+PN
+POST
+PR
+PRAXI
+PRESS
+PRO
+PRODUCTIONS
+PROPERTIES
+PS
+PT
+PUB
+PW
+PY
+QA
+QPON
+QUEBEC
+RE
+REALTOR
+RECIPES
+RED
+REHAB
+REISE
+REISEN
+REN
+RENTALS
+REPAIR
+REPORT
+REPUBLICAN
+REST
+RESTAURANT
+REVIEWS
+RICH
+RIO
+RO
+ROCKS
+RODEO
+RS
+RU
+RUHR
+RW
+RYUKYU
+SA
+SAARLAND
+SARL
+SB
+SC
+SCB
+SCHMIDT
+SCHULE
+SCOT
+SD
+SE
+SERVICES
+SEXY
+SG
+SH
+SHIKSHA
+SHOES
+SI
+SINGLES
+SJ
+SK
+SL
+SM
+SN
+SO
+SOCIAL
+SOFTWARE
+SOHU
+SOLAR
+SOLUTIONS
+SOY
+SPACE
+SPIEGEL
+SR
+ST
+SU
+SUPPLIES
+SUPPLY
+SUPPORT
+SURF
+SURGERY
+SUZUKI
+SV
+SX
+SY
+SYSTEMS
+SZ
+TATAR
+TATTOO
+TAX
+TC
+TD
+TECHNOLOGY
+TEL
+TF
+TG
+TH
+TIENDA
+TIPS
+TIROL
+TJ
+TK
+TL
+TM
+TN
+TO
+TODAY
+TOKYO
+TOOLS
+TOP
+TOWN
+TOYS
+TP
+TR
+TRADE
+TRAINING
+TRAVEL
+TT
+TV
+TW
+TZ
+UA
+UG
+UK
+UNIVERSITY
+UNO
+US
+UY
+UZ
+VA
+VACATIONS
+VC
+VE
+VEGAS
+VENTURES
+VERSICHERUNG
+VET
+VG
+VI
+VIAJES
+VILLAS
+VISION
+VLAANDEREN
+VN
+VODKA
+VOTE
+VOTING
+VOTO
+VOYAGE
+VU
+WALES
+WANG
+WATCH
+WEBCAM
+WEBSITE
+WED
+WF
+WHOSWHO
+WIEN
+WIKI
+WILLIAMHILL
+WORKS
+WS
+WTC
+WTF
+XN--3BST00M
+XN--3DS443G
+XN--3E0B707E
+XN--45BRJ9C
+XN--4GBRIM
+XN--55QW42G
+XN--55QX5D
+XN--6FRZ82G
+XN--6QQ986B3XL
+XN--80ADXHKS
+XN--80AO21A
+XN--80ASEHDB
+XN--80ASWG
+XN--90A3AC
+XN--C1AVG
+XN--CG4BKI
+XN--CLCHC0EA0B2G2A9GCD
+XN--CZR694B
+XN--CZRU2D
+XN--D1ACJ3B
+XN--FIQ228C5HS
+XN--FIQ64B
+XN--FIQS8S
+XN--FIQZ9S
+XN--FPCRJ9C3D
+XN--FZC2C9E2C
+XN--GECRJ9C
+XN--H2BRJ9C
+XN--I1B6B1A6A2E
+XN--IO0A7I
+XN--J1AMH
+XN--J6W193G
+XN--KPRW13D
+XN--KPRY57D
+XN--KPUT3I
+XN--L1ACC
+XN--LGBBAT1AD8J
+XN--MGB9AWBF
+XN--MGBA3A4F16A
+XN--MGBAAM7A8H
+XN--MGBAB2BD
+XN--MGBAYH7GPA
+XN--MGBBH1A71E
+XN--MGBC0A9AZCG
+XN--MGBERP4A5D4AR
+XN--MGBX4CD0AB
+XN--NGBC5AZD
+XN--NQV7F
+XN--NQV7FS00EMA
+XN--O3CW4H
+XN--OGBPF8FL
+XN--P1AI
+XN--PGBS0DH
+XN--Q9JYB4C
+XN--RHQV96G
+XN--S9BRJ9C
+XN--SES554G
+XN--UNUP4Y
+XN--WGBH1C
+XN--WGBL6A
+XN--XKC2AL3HYE2A
+XN--XKC2DL3A5EE0H
+XN--YFRO4I67O
+XN--YGBI2AMMX
+XN--ZFR164B
+XXX
+XYZ
+YACHTS
+YANDEX
+YE
+YOKOHAMA
+YT
+ZA
+ZM
+ZONE
+ZW