├── .gitignore
├── README.md
├── baiduip.py
├── skg.py
├── templates
├── whois.html
├── skg.html
├── cms.html
├── wooyun.html
├── ip.html
├── password.html
└── base.html
├── cms.py
├── myweb.py
├── config
└── dna.txt
├── password.py
└── whois.py
/.gitignore:
--------------------------------------------------------------------------------
1 | /.idea/*
2 | *.pyc
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # pythonwebhack
2 |
3 | > 用python 2.7实现的web框架建立的在线渗透平台
4 | > web框架是flask 前端框架是amazeUI
5 |
6 | ## 安装
7 | `pip install flask`
8 |
9 | `pip install requests`
10 |
11 | `pip install MySQLdb `
12 |
13 |
14 | [usage]: python `myweb.py `
15 |
16 | 乌云数据库文件安装 链接: http://pan.baidu.com/s/1hrKYy8W 密码: yrrr
17 |
18 | ## 更新
19 |
20 | - 12.7 更新 加入乌云漏洞库忽略漏洞查询
21 | - 11.22 更新 集成了乌云漏洞查询 [搭建教程][3]
22 | - 11.7 更新 加入了在线社工库 调用的接口~
23 | - 10.25 更新 加入了社会工程学密码生成和whois查询
24 | - 10.21 更新 加入了CMS在线识别
25 |
26 |
27 | ## 学习教程
28 | 每一步都记录了 [编写记录][1]
29 |
30 |
31 | 用新浪云搭建了下 [http://systeminfo.applinzi.com/][2]
32 |
33 |
34 | [1]: http://bbs.ichunqiu.com/forum.php?mod=collection&action=view&ctid=65
35 | [2]: http://systeminfo.applinzi.com/
36 | [3]: http://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=15744&page=1&extra=#pid261144
37 |
--------------------------------------------------------------------------------
/baiduip.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # coding=utf-8
3 |
4 | """
5 | Function: BaiDuIP地址定位
6 | Author: endness
7 | Time: 2016年10月20日 20:17:33
8 | """
9 | import urllib2
10 | import json
11 |
12 | ak = 'YIogecncCOvlq2oGgWqnYRUCWhKma8dY'
13 | #IP为空默认本机IP
14 | def search(ip=""):
15 | url = "https://api.map.baidu.com/highacciploc/v1?qcip=%s&ak=%s&qterm=pc&extensions=1&coord=bd09ll&callback_type=json" % (ip,ak)
16 | response = urllib2.urlopen(url)
17 | html = response.read()
18 | s = json.loads(html)
19 | data={}
20 | data["radius"] = s["content"]["radius"] #定位半径
21 | data["lng"] = s["content"]["location"]["lng"] #经度
22 | data["lat"] = s["content"]["location"]["lat"] #纬度
23 | data["formatted_address"] = s["content"]["formatted_address"] #详细地址
24 | data["admin_area_code"] = s["content"]["address_component"]["admin_area_code"]#行政区划代码(身份证前6位)
25 | data["map"] = getmap(data["lng"],data["lat"])
26 | return data
27 |
28 | def getmap(lng,lat):
29 | url = "http://api.map.baidu.com/staticimage?width=600&height=400¢er=%s,%s&zoom=11"%(lng,lat)
30 | return url
31 |
32 | if __name__ == "__main__":
33 | pass
--------------------------------------------------------------------------------
/skg.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # coding=utf-8
3 |
4 | """
5 | 社工库调用
6 | """
7 |
8 | import requests
9 | import json
10 |
11 | def findpass(username):
12 | payload = {'q':username}
13 | headers = {"Accept":"application/json, text/javascript, */*; q=0.01",
14 | "User-Agent":"Mozilla/5.0 (Windows NT 9.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36",
15 | "Referer":"http://www.fangzhuangku.com/pwd"}
16 | r = requests.post("http://www.fangzhuangku.com/function/pwdsearch.php",data = payload,headers=headers)
17 | s = json.loads(r.text)
18 | sdata = s["data"]
19 | dict = list()
20 | if len(sdata):
21 | for key in sdata:
22 | for key1 in sdata[key]:
23 | ls_data = {'u':'','p':'','e':'','s':key}
24 | if 'u' in key1.keys():
25 | ls_data["u"] = key1["u"]
26 | if 'p' in key1.keys():
27 | ls_data["p"] = key1["p"]
28 | if 'e' in key1.keys():
29 | ls_data["e"] = key1["e"]
30 | dict.append(ls_data)
31 | return dict
32 | if __name__ == '__main__':
33 | pass
--------------------------------------------------------------------------------
/templates/whois.html:
--------------------------------------------------------------------------------
1 | {% extends "base.html" %}
2 | {% block content %}
3 |
4 |
5 |
6 |
Whois 在线查询
7 |
8 |
20 |
21 |
22 |
23 |
50 | {% endblock %}
51 |
--------------------------------------------------------------------------------
/templates/skg.html:
--------------------------------------------------------------------------------
1 | {% extends "base.html" %}
2 | {% block content %}
3 |
4 |
5 |
6 |
社工库在线查询
7 |
8 |
20 |
21 |
22 |
23 |
58 | {% endblock %}
59 |
--------------------------------------------------------------------------------
/cms.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # coding=utf-8
3 |
4 | """
5 | Function: CMS识别系统
6 | Author: w8ay
7 | Time: 2016年10月21日 16/17/33
8 | """
9 |
10 | import requests
11 | import hashlib
12 | import socket
13 | import os
14 |
15 | data = []
16 | socket.setdefaulttimeout(10)
17 |
18 | def get_md5_value(src):
19 | myMd5 = hashlib.md5()
20 | myMd5.update(src)
21 | myMd5_Digest = myMd5.hexdigest()
22 | return myMd5_Digest
23 |
24 | def getmd5(url):
25 | src = requests.get(url).content
26 | md5=get_md5_value(src)
27 | return md5
28 |
29 | def init():
30 | file_url = os.path.abspath(os.path.split(os.path.realpath(__file__))[0] + r"./config/dna.txt")
31 | file = open(file_url)
32 | try:
33 | for line in file:
34 | str = line.strip().split(" ")
35 | ls_data={}
36 | if len(str)==3:
37 | ls_data["url"] = str[0]
38 | ls_data["name"] = str[1]
39 | ls_data["md5"] = str[2]
40 | data.append(ls_data)
41 | finally:
42 | file.close( )
43 |
44 | def cms(url):
45 | if url is None:
46 | print "url is Null!"
47 | return
48 | url = url.rstrip("/")
49 | for dataline in data:
50 | _url = url + dataline["url"]
51 | #print "Scan " + _url
52 | try:
53 | status = requests.head(_url,timeout=10).status_code
54 | except:
55 | pass
56 |
57 | if status==200:
58 | md5 = get_md5_value(requests.get(_url).content)
59 | #print md5
60 | if(md5 == dataline["md5"]):
61 | dataline["url"] = _url
62 | return dataline
63 | return False
64 |
65 | #初始化载入字典
66 | init()
67 | if __name__ == '__main__':
68 | pass
--------------------------------------------------------------------------------
/templates/cms.html:
--------------------------------------------------------------------------------
1 | {% extends "base.html" %}
2 | {% block content %}
3 |
4 |
5 |
6 |
CMS在线识别
7 |
8 |
20 |
21 |
22 |
23 |
67 | {% endblock %}
68 |
--------------------------------------------------------------------------------
/templates/wooyun.html:
--------------------------------------------------------------------------------
1 | {% extends "base.html" %}
2 | {% block content %}
3 |
4 |
5 |
6 |
WooYun漏洞查询
7 |
8 |
20 |
21 |
22 |
23 |
64 | {% endblock %}
--------------------------------------------------------------------------------
/templates/ip.html:
--------------------------------------------------------------------------------
1 | {% extends "base.html" %}
2 | {% block content %}
3 |
4 |
5 |
6 |
IP详细地址定位
7 |
8 |
20 |
21 |
22 |
23 |
72 | {% endblock %}
73 |
--------------------------------------------------------------------------------
/templates/password.html:
--------------------------------------------------------------------------------
1 | {% extends "base.html" %}
2 | {% block content %}
3 |
4 |
5 |
6 |
在线社工字典生成
7 |
8 |
利用人性的弱点 精准的分析个人密码
9 |
10 |
78 |
79 |
80 |
81 |
111 | {% endblock %}
112 |
--------------------------------------------------------------------------------
/myweb.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # coding=utf-8
3 |
4 | from flask import Flask,render_template,request
5 | import re
6 | import baiduip
7 | from password import PasswdGenerator
8 | import cms
9 | import sys
10 | import whois
11 | import skg
12 |
13 | import MySQLdb
14 | import sys
15 | reload(sys)
16 | sys.setdefaultencoding('utf-8')
17 |
18 |
19 |
20 | app = Flask(__name__)
21 | #连接数据库操作
22 | db = MySQLdb.connect("127.0.0.1","root","","pyhack",charset='utf8' )
23 | cursor = db.cursor()
24 |
25 | @app.route('/',methods=["get","post"])
26 | def index():
27 | return render_template('ip.html')
28 |
29 | #IP地址定位
30 | @app.route('/ip',methods=["get","post"])
31 | def BaiduIp():
32 | if request.method == 'POST':
33 | ip = request.form.get("search")
34 | addr=ip.strip().split('.') #切割IP地址为一个列表
35 | if len(addr) != 4:
36 | return "IP ERROR!"
37 | data = baiduip.search(ip)
38 | return render_template('ip.html',data=data,title="高精度IP查询")
39 | else:
40 | return render_template('ip.html',title="高精度IP查询")
41 |
42 | #CMS在线识别
43 | @app.route('/webdna',methods=["get","post"])
44 | def webdna():
45 | if request.method == 'POST':
46 | url = request.form.get("search")
47 | if re.match(r'^https?:/{2}\w.+$', url):
48 | data = cms.cms(url)
49 | if data is False:
50 | data["error"] = "没有找到合适的CMS"
51 | return render_template('cms.html',data=data,title="CMS识别")
52 | else:
53 | return render_template('cms.html',title="CMS识别")
54 |
55 | #在线密码生成
56 | @app.route('/password',methods=["get","post"])
57 | def password_build():
58 | if request.method == 'POST':
59 | from flask import make_response
60 | birthday = request.form.get("birthday","")
61 | fullname = request.form.get("fullname","")
62 | nickname = request.form.get("nickname","")
63 | englishname = request.form.get("englishname","")
64 | partnername = request.form.get("partnername","")
65 | phone = request.form.get("phone","")
66 | qq = request.form.get("qq","")
67 | company = request.form.get("company","")
68 | domain = request.form.get("domain","")
69 | oldpasswd = request.form.get("oldpasswd","")
70 | keywords = request.form.get("keywords","")
71 | keynumbers = request.form.get("keynumbers","")
72 | pwgen = PasswdGenerator(fullname=fullname,nickname=nickname,englishname=englishname,partnername=partnername,phone=phone,qq=qq,company=company,domain=domain,oldpasswd=oldpasswd,keywords=keywords,keynumbers=keynumbers,birthday=birthday)
73 | wordlist = pwgen.generate()
74 | content = '\n'.join(wordlist)
75 | #content = "long text"
76 | response = make_response(content)
77 | response.headers["Content-Disposition"] = "attachment; filename=pass.txt"
78 | return response
79 | #return render_template('password.html',data=wordlist,title="社工密码生成")
80 | else:
81 | return render_template('password.html',title="社工密码生成")
82 |
83 | #Whois 在线查询
84 | @app.route('/whois',methods=["get","post"])
85 | def whoisa():
86 | if request.method == 'POST':
87 | url = request.form.get("search")
88 | data = whois.whois(url).replace("\n","")
89 | return render_template('whois.html',data=data,title="Whois查询")
90 | else:
91 | return render_template('whois.html',title="Whois查询")
92 |
93 | #调用外部社工库进行查询
94 | @app.route('/pass',methods=["get","post"])
95 | def findpass():
96 | if request.method == 'POST':
97 | info = request.form.get("search")
98 | data = skg.findpass(info)
99 | return render_template('skg.html',data=data,title="社工库查询")
100 | else:
101 | return render_template('skg.html',title="社工库查询")
102 |
103 | #集成wooyun漏洞平台
104 | @app.route('/wooyun',methods=["get","post"])
105 | @app.route('/wooyun/',methods=["get","post"])
106 | def wooyun(pages = 0):
107 | searchword = request.args.get('key', '').strip()
108 | log_id = request.args.get('id', '').strip()
109 | data = {}
110 | table = list()
111 | if log_id:
112 | # 使用execute方法执行SQL语句
113 | cursor.execute(MySQLdb.escape_string("SELECT * from emlog_blog where gid=%s"%log_id))
114 | # 使用 fetchone() 方法获取一条数据库。
115 | results = cursor.fetchone()
116 | data["id"] = results[0]
117 | data["text"] = results[2]
118 | data["title"] = results[1]
119 | if searchword:
120 | sql = 'SELECT gid,title from emlog_blog where title like "%%%s%%"'%(searchword)
121 | cursor.execute(sql)
122 | #cursor.execute('SELECT * from emlog_blog limit 10')
123 | results = cursor.fetchall()
124 |
125 | for rows in results:
126 | tdata = {}
127 | tdata["id"] = rows[0]
128 | tdata["title"] = rows[1]
129 | table.append(tdata)
130 | return render_template("wooyun.html",title="乌云漏洞查询",data=data,table=table)
131 |
132 | #集成wooyun漏洞平台 -被忽略的漏洞
133 | @app.route('/wooyun1',methods=["get","post"])
134 | @app.route('/wooyun1/',methods=["get","post"])
135 | def wooyun1(pages=0):
136 | if pages is None:
137 | pages = 0
138 | if pages < 0:
139 | pages = 0
140 | sql = 'SELECT gid,title from emlog_blog where content like "%%%s%%" limit %d,%d'%("无影响厂商忽略",pages*20,20)
141 | print sql
142 | cursor.execute(sql)
143 | results = cursor.fetchall()
144 | table = list()
145 | for rows in results:
146 | tdata = {}
147 | tdata["id"] = rows[0]
148 | tdata["title"] = rows[1]
149 | table.append(tdata)
150 | return render_template("wooyun.html",title="乌云忽略漏洞查询",table=table,next=pages+1,prev=pages-1)
151 |
152 | if __name__ == '__main__':
153 | app.run(debug=True)
154 |
--------------------------------------------------------------------------------
/templates/base.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {% if title %}
7 | {{title}} - 在线渗透平台
8 | {% else %}
9 | 在线渗透平台
10 | {% endif %}
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
132 |
133 |
134 |
135 |
136 |
137 |
144 |
147 |
164 |
165 |
183 |
184 |
185 |
186 |
187 |
188 |
189 | - 用户中心(未做)
190 | - 退出登陆
191 |
192 |
193 |
194 |
195 | {% block content %}{% endblock %}
196 |
197 |
198 |
199 |
202 |
203 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
--------------------------------------------------------------------------------
/config/dna.txt:
--------------------------------------------------------------------------------
1 | /favicon.ico ecshop 724c06bcaf1a3005ba1da8207d2f43d0
2 | /favicon.ico ecshop 428b23df874b41d904bbae29057bdba5
3 | /favicon.ico Discuz c028c4822428e83a358c60a93ef65381
4 | /content/templates/default/main.css emlog add7b70ee1f05b20aee4079d00a72b60
5 | /robots.txt cmseasy 6d23cecefe90583d475a415aad172510
6 | /robots.txt cmseasy3.5 9feccf8b92b8a920d175df41fb0d362a
7 | /favicon.ico dedecms 7ef1f0a0093460fe46bb691578c07c95
8 | /robots.txt Discuz2x 2b5cb8618fba34f891ca7b59e232170a
9 | /robots.txt Discuz3x e4c3bfe695710c5610cf51723b3bdae2
10 | /robots.txt Discuz3x 4128ea5ec7c9d736bcde5acbfa2eb08f
11 | /favicon.ico Discuz!Board d1de7ce7b9fab425f49cec61d6ad0065
12 | /Vote/Img/skin/css_2/2_logo.gif foosun 8a7af084aea04360163a28ad17385fe8
13 | /js/close.gif aspcms2 1f96a4dc1fd3761cbbc63160f4663bf6
14 | /member/images/member.gif dedecms 4357834e5cd7cfdd3ea93dc93eefda9a
15 | /member/templets/images/login_logo.gif dedecms e5ef5cbf5adee69581b6ef02333b82e3
16 | /plus/img/wbg.gif dedecms 3a5f9524e65a24b169e232ed76959eb8
17 | /images/qq/qqkf2/Kf_bg03_03.gif aspcms2 fd5895d46be13038be5dffd88539cb45
18 | /favicon.ico Phpwind cfc440185d836a969827f0fd52d38e03
19 | /images/admin/login/logo.png Phpwind 77ab4d3d34521c54bb0ea09286eda1d2
20 | /admin/discuzfiles.md5 Discuz c11c470d1050bf8e20e6a94099c082f1
21 | /favicon.ico Phpcms 51fd7ea69a314e6cef2ba850d7f93853
22 | /htaccess.txt Joomla a386e1067169c649dc3949f7a198eb7b
23 | /.htaccess Drupal b0ca713850dca569644ee015458a52f3
24 | /images/kesion.png kesion 048115cf38771e35d1cb3979f08e2ed0
25 | /wp-content/themes/twentyten/images/wordpress.png Wordpress f51375d00e7d0a70c801c6256d432d3b
26 | /wp-admin/images/wp-logo-2x.png Wordpress e0c1cc94af35c8b495e35e9e6fbdad05
27 | /admin/views/style/green/style.css emlog e3891fd6c4be0d9907f6389cbc3913b3
28 | /Images/logo.gif southidc 23d42cd034b2baa4859174f25f6ddd4c
29 | /Script/Html.js southidc e42ebc34d965d29654128f18385fe2a4
30 | /kaiyuanhome/images/logo.jpg HDwiki 26089e2b5dc983e21c7e4ee7139e55e2
31 | /style/default/hdwiki.css HDwiki 1c9a27d7c1b47da2083be4012408c75e
32 | /style/default/hdwiki.css HDwiki 226c20d5f724e01cb7b0518334182ce9
33 | /style/default/hdwiki.css HDwiki 0a913f1e4f5be9f9510cd336e5a53d08
34 | /e/tool/feedback/temp/test.txt diguoCMS 8eaf3eb0a904b0507199a644d1026fd7
35 | /static/image/admincp/logo.gif Discuz 86453e237f4e78c656095a4978175b57
36 | /images/index_24.jpg 爱装网 173e61e7b4faea97eb8b1e7cb975681e
37 | /images/home/nchz_13.gif 爱装网 5929140a1a9d50d8c1168750a82858a8
38 | /images/user_logo.GIF N点虚拟主机 2f1c91922efbaf8eb92dbb8020588831
39 | /admin/Images/del.gif kesioncms 62d789a3c0e332b1b37adee5d95a5cee
40 | /KS_Inc/common.js kesioncms 7301940bc8d97156c0882e2272ab5f72
41 | /images/logo.gif 86cms dcaa64ffe249dfaa70cfc6e95466e741
42 | /adfile/ad9.js 86cms b57ae1014626b16880282e08b772e2aa
43 | /images/lzbg12.gif luzhucms 86dd66d4951f0f64aa33960546aeec3f
44 | /images/bg1.gif luzhucms 8dfe3b7bf5d8c1469eaa9e43e31aa74b
45 | /inc/image/bj.gif ideacms 95c44459669b7ccea31cdea399d454ca
46 | /inc/photo/loader.gif ideacms 71f0518dad0c74927f3bf3d4a5fb6fb2
47 | /images/act_1.gif actcms baa410081df00f46a03ae7d0bb2d50e6
48 | /images/reg.gif actcms 1a18df0fbc65058bcb98e4dd7ff9c0bf
49 | /favicon.ico qibocms 4c7d2f1c6455c0fd1493fc36cbec7089
50 | /admin/images/login/index_hz02.gif qibocms b43fb839a1b429165c614488b5c7e6ce
51 | /robots.txt siteserver daae653583650582032c5c258faa7d8a
52 | /siteserver/pic/company/logo.gif siteserver 9c958caee36407f14b3455c2d47dc5a0
53 | /Upload/Logo.jpg 智睿网站系统 199cc54208ea0f6377fd60a44aaf5793
54 | /images/Arrow_02.gif 智睿网站系统 6be608ef8b05f05b5e47d44646a1f3cd
55 | /upload/logo.jpg 智睿学校网站系统 f77fa432df69202f13d27f06bcbdbe7f
56 | /inc/qq.js YiDacms 6909101800e2587fc36e32c5431c6b4c
57 | /images/yi.png Yidacms efa2a854ad9897ec4c6c182e47045247
58 | /robots.txt EmpireCMS 1e5e773092126eadebd896fa7fb1e6e4
59 | /static/image/common/logo.png Z-Blog ee292fe9c2babc40dcdbd60d5b40e4d3
60 | /components/com_mailto/views/sent/metadata.xml joomla 891d9339b9237331848b8cf756da2953
61 | /wp-admin/js/media-upload.dev.js wordpress c89f28b3f0b28b839538d99883e70817
62 | /robots.txt phpcmsv9 7750f62fc14ea34527c09c7694a3d406
63 | /admin/ecshopfiles.md5 ecshop e99cc417418594504efcd1bb1987864c
64 | /rss.xsl powereasy动易 f2886b001cf648e033824f75ce5454bd
65 | /License.txt powereasy动易 bdb22d202c148bedac1a58859f8a4f52
66 | /images/logo.gif dvbbs a1158ed8cbc8983e4fceb8dbd5914a55
67 | /robots.txt EmpireCMS 1e5e773092126eadebd896fa7fb1e6e4
68 | /themes/README.txt drupal ebb103f4c12b214d0e1cc622c5da4216
69 | /images/logo.jpg shopxp f3266e43894b6e77d57e8ea2e160b8d8
70 | /favicon.ico mlecms a68a2169436bd7a30f2f1e17c2a36b21
71 | /favicon.ico mlecms 7d1ef8f5478fc951725b8858c371517b
72 | /admin/images/logo.png zcncms 05e27fe8919e6142f922024c77f61479
73 | /images/default/loading.gif zcncms 7b9776076d5fceef4993b55c9383dedd
74 | /favicon.ico netgather e64d01ec6dc8cee4add852e2b7a93c80
75 | /404/emessage.gif 尘月企业网站管理系统 9e64377e3975c928c3bff97d49e1917a
76 | /Admin_Cy/Script/xselect.js 尘月企业网站管理系统 17cffe01f7ad89fba3a6a4624bf5abfe
77 | /images-global/zoom/zoom-caption-fill.png abcms 30622d7dfb42b9e1d0e78b1fdd9340ce
78 | /upload/201108/1313422810.gif kuwebs 48b9ba6238fbfe755b570b40665b4183
79 | /images/images/message.gif kuwebs ea922c022775686cd300a345e9220121
80 | /install/images/00.png abcms 1513efc63c01b27ec75402e4b0d3b95f
81 | /images/_m10.GIF 青果软件教务系统 5f18dc98d899dadec18bd506ff17f253
82 | /images/index_border1.gif 青果软件教务系统 6847aab9eafaa3b18c9779ddf34f92e2
83 | /favicon.ico iwebshop 46ad7401bb5815164a01ad924ffb1436
84 | /image/watermark.gif iwebshop ac269b3a072ef820a5d4aa00d5bfd79c
85 | /favicon.ico otcms 931fefaca9f943da954fc2a1e4080146
86 | /theme/default/images/logo.gif sdcms d535f2edf34bc2d2705c236dfea92969
87 | /max-templates/default/images/logo.gif sdcms 781bf9d508406e067449c9429824ef21
88 | /adminimages/title.GIF 露珠文章管理系统 625f2078f5cc4bbffb4f1390f982b66b
89 | /ACT_inc/ItemBg.gif actcms 9cfc31ea9b376230b76bfbbf70b814bf
90 | /ACT_inc/share/minusbottom.gif actcms 934a2b40df618be35f7488ac3245aca6
91 | /Admin/Images/logo.jpg actcms 16088c9aeb5b77ef3a07db4e08834880
92 | /Admin/Images/bg_admin.jpg actcms 6b1185f2df41f38247d20f1f5b53c0cc
93 | /images/luzhu.gif 露珠文章管理系统 71433dae83ef287dc8f355377779045d
94 | /imageslzcms/logo.gif 露珠文章管理系统 1d2d2581007cbb2c3e1ea609e736d1d2
95 | /_skins/201209/images/logo.jpg 凡诺企业网站管理系统 33e6a22765897b73d0a6e97ecd57546a
96 | /UploadFiles/image/logo.png 非凡建站 40a6ec9e1d00f94a3f3dc6f093d340ea
97 | /static/image/common/logo.gif 74cms 41d072214c5462ad7185ae3d7d557145
98 | /images/usercp_usergroups.gif siteengine 2e6aa24c1f3805289405818df841dd72
99 | /data/smiliey/default/shy.gif siteengine 3227c0dda09fadbc46a1fbd7fe26f6ed
100 | /install/images/bg-input.png phpshop 663a4d8b4aef4cbad3b71b1994027c8e
101 | /shopdata/site/default_logo.png phpshop f4d64f73566e088068b8cd7ba1969eb8
102 | /plus/weather/icon/a_12.gif jumbotcms 16f7e10abf188183c3404cea5f48b42e
103 | /question/images/face/images/ico_face_arrow.gif jumbotcms 28acc83650388bf279d7113f8574c58c
104 | /favicon.ico jishigou a9bd87b58f9b9a7d939720d74d6f84bc
105 | /favicon.ico shlcms d5bb00993027e53e5eedcb8a972250fa
106 | /admini/images/dt_admini_bottom_logo.gif shlcms 960bd48dcbd38b01cac65747bf34fa31
107 | /favicon.ico jumbotcms 4c6bb4f93b1feef197722ee9e167d337
108 | /favicon.ico hishop cdfff64428dabfee701d2594bd22ac83
109 | /plugin/images/netgather_com.gif netgather 64b73952d8de270c1277b30da1def0d5
110 | /images/logo.jpg 老Y文章管理系统 91e4bffc8b4dd9c050762920102c6ac1
111 | /inc/image/m_tleft.png ideacms c72ccfb2f054f239ab0cc39ea7cb0cab
112 | /template/skin4/images/style.css ideacms 82587c6399625d54287311aabe34f073
113 | /xyuploadpic/201104/20110426234253776.jpg xycms 7c20cb7fa08054fe330814cde898bbd4
114 | /favicon.ico cmstop ecf667c14d3c6f3b0ae4b8b44b1f987a
115 | /inc/images/logo.png mlecms c6b49af9c35ed00f408ea3910b6a2bfb
116 | /favicon.ico ayacms be8f5955f093bc9f92899c00734091c5
117 | /data/index.html dedecms 1cd563226a10644da619c499df037071
118 | /job/templates/met/css/style.css metinfo 3d906218998f71e198808b7895c4dc96
119 | /upload/200911/1259148297.gif metinfo 5c7bcc7bb31c9dc10efbe93f0b51fbfc
120 | /xheditor/images/code.gif kingcms 4d140db860497655d1e42de646b9de9a
121 | /system/images/logo.png kingcms 050aa01fafbc432c5b97893282784e61
122 | /favicon.ico nitc(定海神真) 31dec4d7caee04d8e2b640a5b619bf05
123 | /images/logo.png akcms b04324f42cbe27e13ea05988013b0633
124 | /admin/images/image_new.gif cutecms 1fe436554aefee1310b083e29d6ac4c7
125 | /admin/config_upload/20130422105832iraqpj.png cutecms 16df42b7255cfec8ccb376dbf3fa2cf8
126 | /images/admina/logo.png 08cms 413946cd43e990aa551335198ae5b631
127 | /images/admina/arrow.jpg 08cms 6ad561345b55814902d014707015cf72
128 | /templates/uchome/images/sitelogo.png 建站之星 cded8ff39d38bbb9aaf4fe2e14a8678a
129 | /config/filtersearch/s3.xml KesionCMS 638922dfc689b7b9af094a968797405b
130 | /license.txt 动易 38bd1344f7a575a7d888ba2491787819
131 | /admin/images/southidc.css 南方数据 9e6a7ebe3600a3f509c8fe8e45d9344c
--------------------------------------------------------------------------------
/password.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #-*- coding:utf-8 -*-
3 |
4 | '''
5 | Pentestdb, a database for penetration test.
6 | Copyright (c) 2015 alpha1e0
7 | ================================================================
8 | 社工密码生成器.
9 | '''
10 |
11 |
12 | import time
13 | import itertools
14 |
15 |
16 |
17 | class PasswdGenerator(object):
18 | '''
19 | Password generator.
20 | '''
21 | # 常用密码关键数字
22 | _numList = ['123456', '123123', '123123123', '112233', '445566', '456456', '789789', '778899', '321321', '520', '1314', '5201314', '1314520', '147369', '147258', '258', '147', '456', '789', '147258369', '111222', '123', '1234', '12345', '1234567', '12345678', '123456789', '987654321', '87654321', '7654321', '654321', '54321', '4321', '321']
23 | # 常用前缀列表
24 | _prefixList = ['a','qq','yy','aa','abc','qwer','woaini']
25 | # 常用密码
26 | _commonPasswd = ['123456', 'a123456', '123456a', '123456abc', 'abc123456', 'woaini1314', 'qq123456', 'woaini520', 'woaini123', 'woaini521', 'qazwsx', '1qaz2wsx', '1q2w3e4r', '1q2w3e4r5t', '1q2w3e', 'qwertyuiop', 'zxcvbnm']
27 | # 和partner混合的常用前缀列表
28 | partnerPrefixList = ['520','5201314','1314','iloveu','iloveyou']
29 | # 和domian,company组合的前缀列表
30 | domainPrefixList = ['admin','root','manager','system']
31 |
32 |
33 | def __init__(self, fullname="", nickname="", englishname="", partnername="", birthday="", phone="", qq="", \
34 | company="", domain="", oldpasswd="", keywords="", keynumbers=""):
35 | '''
36 | Params:
37 | Parameters of args:
38 | fullname: specified the fullname, format: 'zhang san' 'wang ai guo' 0
39 | nickname: specified the nickname 0
40 | englishname: specified the english name 0
41 | partnername: specified the partner name
42 | birthday: specified the birthday day, format: '2000-1-10' 0
43 | phone: specified the phone number 0
44 | qq: specified the QQ number 0
45 | company: specified the company
46 | domain: specified the domain name
47 | oldpasswd: specified the oldpassword
48 | keywords: specified the keywords, example: 'keyword1 keyword2'
49 | keynumbers: specified the keynumbers, example: '123 789' 0
50 | '''
51 | self.fullname = fullname
52 | self.nickname = nickname
53 | self.englishname = englishname
54 | self.partnername = partnername
55 | self.birthday = birthday
56 | self.phone = phone
57 | self.qq = qq
58 | self.company = company
59 | self.domain = domain
60 | self.oldpasswd = oldpasswd
61 | self.keywords = keywords
62 | self.keynumbers = keynumbers
63 |
64 | # 常用数字列表,用户和用户名、昵称、英文名、关键字等混合
65 | self.innerNumList = []
66 | # 常用前缀列表,用于和手机号、QQ号混合
67 | self.innerPrefixList = []
68 |
69 | # 段名列表,由原始全名生成
70 | self.shortNameList = []
71 | # 全名列表,由原始全名生成
72 | self.fullNameList = []
73 | # 待混合的keyword列表,由于用户名、昵称、英文名、关键字的混合规则一致,因此放到这一个列表内进行混合
74 | self.mixedKeywordList = []
75 |
76 | self.result = []
77 |
78 |
79 | def _genShortNameList(self, fullname=None):
80 | fullname = fullname if fullname else self.fullname
81 | if not fullname:
82 | return []
83 | else:
84 | result = []
85 | func = lambda x:[x, x.title(), x[0].lower(), x[0].upper(), x.upper()]
86 | nameSplited = fullname.split()
87 | if len(nameSplited) == 1:
88 | result += func(nameSplited[0])
89 | elif len(nameSplited) == 2:
90 | shortName = nameSplited[0][0].lower() + nameSplited[1][0].lower()
91 | result += func(shortName)
92 | else:
93 | shortName = nameSplited[0][0].lower() + nameSplited[1][0].lower() + nameSplited[2][0].lower()
94 | result += func(shortName)
95 | shortNameRS = nameSplited[1][0].lower() + nameSplited[2][0].lower() + nameSplited[0][0].lower()
96 | shortNameR = nameSplited[1][0].lower() + nameSplited[2][0].lower() + nameSplited[0]
97 | result += [shortNameR, shortNameRS, shortNameRS.upper()]
98 |
99 | return result
100 |
101 |
102 | def _genFullNameList(self, fullname=None):
103 | fullname = fullname if fullname else self.fullname
104 | if not fullname:
105 | return []
106 | else:
107 | result = []
108 | nameSplited = fullname.split()
109 | if len(nameSplited) == 1:
110 | result.append(nameSplited[0])
111 | elif len(nameSplited) == 2:
112 | result += ["".join(nameSplited), nameSplited[1]+nameSplited[0]]
113 | else:
114 | result += [nameSplited[0]+nameSplited[1]+nameSplited[2], nameSplited[1]+nameSplited[2]+nameSplited[0]]
115 |
116 | return result + [x.upper() for x in result]
117 |
118 |
119 | def _genInnerNumList(self):
120 | result = self._numList
121 | for i in range(0,10):
122 | result += [str(i)*x for x in range(1,10)]
123 |
124 | endyear = int(time.strftime("%Y"))
125 | result += [str(x) for x in range(2000, endyear+1)]
126 |
127 | if self.keynumbers:
128 | result += self.keynumbers.split()
129 | if self.oldpasswd:
130 | result.append(self.oldpasswd)
131 |
132 | return result
133 |
134 |
135 | def _genDateList(self, date):
136 | if not date:
137 | return []
138 | else:
139 | result = []
140 | dateSplited = date.split("-")
141 | if len(dateSplited) == 1:
142 | result.append(dateSplited[0])
143 | elif len(dateSplited) == 2:
144 | result += [dateSplited[0], dateSplited[0]+dateSplited[1], dateSplited[0][-2:]+dateSplited[1]]
145 | else:
146 | result += [dateSplited[0], dateSplited[0]+dateSplited[1], dateSplited[0]+dateSplited[1]+dateSplited[2]]
147 | result += [dateSplited[0][-2:]+dateSplited[1], dateSplited[0][-2:]+dateSplited[1]+dateSplited[2]]
148 |
149 | return result
150 |
151 | def _mixed(self, listA, listB):
152 | if not listA and not listB:
153 | return []
154 | result = []
155 | for a,b in itertools.product(listA, listB):
156 | if len(a+b)>5 and len(a+b)<17:
157 | result.append(a+b)
158 | result.append(a+"@"+b)
159 |
160 | return result
161 |
162 |
163 | def _preHandlePhase(self):
164 | self.innerNumList = self._genInnerNumList()
165 | self.innerPrefixList = self._prefixList + [x.upper() for x in self._prefixList]
166 | self.shortNameList = self._genShortNameList()
167 | self.fullNameList = self._genFullNameList()
168 |
169 | self.mixedKeywordList += self.shortNameList
170 | self.mixedKeywordList += self.fullNameList
171 | if self.nickname:
172 | self.mixedKeywordList.append(self.nickname)
173 | if self.englishname:
174 | self.mixedKeywordList.append(self.englishname)
175 | if self.keywords:
176 | self.mixedKeywordList += self.keywords.split()
177 |
178 |
179 | def _mixedPhase(self):
180 | self.result += self._mixed(self.mixedKeywordList, self.innerNumList)
181 | self.result += self._mixed(["520"], self.mixedKeywordList)
182 | if self.phone:
183 | self.result += self._mixed(self.innerPrefixList+self.mixedKeywordList, [self.phone])
184 | if self.qq:
185 | self.result += self._mixed(self.innerPrefixList+self.mixedKeywordList, [self.qq])
186 | if self.partnername:
187 | nameList = self._genShortNameList(self.partnername)
188 | nameList += self._genFullNameList(self.partnername)
189 | self.result += self._mixed(self.partnerPrefixList, nameList)
190 | if self.birthday:
191 | dateList = self._genDateList(self.birthday)
192 | self.result += self._mixed(self.innerPrefixList+self.mixedKeywordList, dateList)
193 | if self.domain:
194 | self.result += self._mixed(self.domainPrefixList, [self.domain])
195 | if self.company:
196 | self.result += self._mixed(self.domainPrefixList, [self.company])
197 |
198 |
199 | def _lastHandlePhase(self):
200 | self.result += self._commonPasswd
201 | self.result += [x+"." for x in self.result]
202 |
203 |
204 | def generate(self):
205 | self._preHandlePhase()
206 | self._mixedPhase()
207 | self._lastHandlePhase()
208 |
209 | return self.result
210 |
211 |
212 | # [usage]
213 | # pwgen = PasswdGenerator(nickname=nickname,qq=qq)
214 | # wordlist = pwgen.generate()
215 |
216 |
217 |
218 |
--------------------------------------------------------------------------------
/whois.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # coding=utf-8
3 |
4 | """
5 | Function: Whois 模块
6 | Author: w8ay
7 | Time: 2016年10月22日 21:12:33
8 | """
9 |
10 | import socket
11 |
12 | TLDS = [
13 | ('.br.com', 'whois.centralnic.net', None),
14 | ('.cn.com', 'whois.centralnic.net', None),
15 | ('.de.com', 'whois.centralnic.net', None),
16 | ('.eu.com', 'whois.centralnic.net', None),
17 | ('.gb.com', 'whois.centralnic.net', None),
18 | ('.gb.net', 'whois.centralnic.net', None),
19 | ('.gr.com', 'whois.centralnic.net', None),
20 | ('.hu.com', 'whois.centralnic.net', None),
21 | ('.in.net', 'whois.centralnic.net', None),
22 | ('.no.com', 'whois.centralnic.net', None),
23 | ('.qc.com', 'whois.centralnic.net', None),
24 | ('.ru.com', 'whois.centralnic.net', None),
25 | ('.sa.com', 'whois.centralnic.net', None),
26 | ('.se.com', 'whois.centralnic.net', None),
27 | ('.se.net', 'whois.centralnic.net', None),
28 | ('.uk.com', 'whois.centralnic.net', None),
29 | ('.uk.net', 'whois.centralnic.net', None),
30 | ('.us.com', 'whois.centralnic.net', None),
31 | ('.uy.com', 'whois.centralnic.net', None),
32 | ('.za.com', 'whois.centralnic.net', None),
33 | ('.jpn.com', 'whois.centralnic.net', None),
34 | ('.web.com', 'whois.centralnic.net', None),
35 | ('.com', 'whois.verisign-grs.com', 'VERISIGN'),
36 | ('.za.net', 'whois.za.net', None),
37 | ('.net', 'whois.verisign-grs.com', 'VERISIGN'),
38 | ('.eu.org', 'whois.eu.org', None),
39 | ('.za.org', 'whois.za.org', None),
40 | ('.org', 'whois.pir.org', None),
41 | ('.edu', 'whois.educause.edu', None),
42 | ('.gov', 'whois.dotgov.gov', None),
43 | ('.int', 'whois.iana.org', None),
44 | ('.mil', 'NONE', None),
45 | ('.e164.arpa', 'whois.ripe.net', None),
46 | ('.in-addr.arpa', None, 'ARPA'),
47 | ('.arpa', 'whois.iana.org', None),
48 | ('.aero', 'whois.aero', None),
49 | ('.asia', 'whois.nic.asia', None),
50 | ('.biz', 'whois.biz', None),
51 | ('.cat', 'whois.cat', None),
52 | ('.coop', 'whois.nic.coop', None),
53 | ('.info', 'whois.afilias.net', None),
54 | ('.jobs', 'jobswhois.verisign-grs.com', 'VERISIGN'),
55 | ('.mobi', 'whois.dotmobiregistry.net', None),
56 | ('.museum', 'whois.museum', None),
57 | ('.name', 'whois.nic.name', None),
58 | ('.post', 'whois.dotpostregistry.net', None),
59 | ('.pro', 'whois.dotproregistry.net', None),
60 | ('.tel', 'whois.nic.tel', None),
61 | ('.travel', 'whois.nic.travel', None),
62 | ('.xxx', 'whois.nic.xxx', None),
63 | ('.ac', 'whois.nic.ac', None),
64 | ('.ad', '', 'NONE'),
65 | ('.ae', 'whois.aeda.net.ae', None),
66 | ('.af', 'whois.nic.af', None),
67 | ('.ag', 'whois.nic.ag', None),
68 | ('.ai', 'whois.ai', None),
69 | ('.al', '', 'NONE'),
70 | ('.am', 'whois.amnic.net', None),
71 | ('.an', '', 'NONE'),
72 | ('.ao', '', 'NONE'),
73 | ('.aq', '', 'NONE'),
74 | ('.ar', 'http://www.nic.ar/', 'WEB'),
75 | ('.as', 'whois.nic.as', None),
76 | ('.priv.at', '', 'whois.nic.priv.at'),
77 | ('.at', 'whois.nic.at', None),
78 | ('.au', 'whois.audns.net.au', None),
79 | ('.aw', 'whois.nic.aw', None),
80 | ('.ax', '', 'whois.ax'),
81 | ('.az', 'http://www.nic.az/', 'WEB'),
82 | ('.ba', 'http://www.nic.ba/stream/whois/', 'WEB'),
83 | ('.bb', 'http://whois.telecoms.gov.bb/search_domain.php', 'WEB'),
84 | ('.bd', 'http://whois.btcl.net.bd/', 'WEB'),
85 | ('.be', 'whois.dns.be', None),
86 | ('.bf', '', 'NONE'),
87 | ('.bg', 'whois.register.bg', None),
88 | ('.bh', '', 'NONE'),
89 | ('.bi', 'whois1.nic.bi', None),
90 | ('.bj', 'whois.nic.bj', None),
91 | ('.bm', 'http://207.228.133.14/cgi-bin/lansaweb?procfun+BMWHO+BMWHO2+WHO', 'WEB'),
92 | ('.bn', '', 'whois.bn'),
93 | ('.bo', 'whois.nic.bo', None),
94 | ('.br', 'whois.registro.br', None),
95 | ('.bs', 'http://www.nic.bs/cgi-bin/search.pl', 'WEB'),
96 | ('.bt', 'http://www.nic.bt/', 'WEB'),
97 | ('.bv', '', 'NONE'),
98 | ('.by', 'whois.cctld.by', None),
99 | ('.bw', 'whois.nic.net.bw', None),
100 | ('.bz', 'AFILIAS', None),
101 | ('.co.ca', 'whois.co.ca', None),
102 | ('.ca', 'whois.cira.ca', None),
103 | ('.cc', 'ccwhois.verisign-grs.com', 'VERISIGN'),
104 | ('.cd', 'whois.nic.cd', None),
105 | ('.cf', 'whois.dot.cf', None),
106 | ('.cg', 'http://www.nic.cg/cgi-bin/whois.pl', 'WEB'),
107 | ('.ch', 'whois.nic.ch', None),
108 | ('.ci', 'whois.nic.ci', None),
109 | ('.ck', 'NONE', None),
110 | ('.cl', 'whois.nic.cl', None),
111 | ('.cm', 'whois.netcom.cm', None),
112 | ('.edu.cn', 'whois.edu.cn', None),
113 | ('.cn', 'whois.cnnic.cn', None),
114 | ('.uk.co', 'whois.uk.co', None),
115 | ('.co', 'whois.nic.co', None),
116 | ('.cr', 'http://www.nic.cr/niccr_publico/showRegistroDominiosScreen.do', 'WEB'),
117 | ('.cu', 'http://www.nic.cu/', 'WEB'),
118 | ('.cv', 'http://www.dns.cv/', 'WEB'),
119 | ('.cw', '', 'NONE'),
120 | ('.cx', 'whois.nic.cx', None),
121 | ('.cy', 'http://www.nic.cy/nslookup/online_database.php', 'WEB'),
122 | ('.cz', 'whois.nic.cz', None),
123 | ('.de', 'whois.denic.de', None),
124 | ('.dj', 'http://www.nic.dj/whois.php', 'WEB'),
125 | ('.dk', 'whois.dk-hostmaster.dk', None),
126 | ('.dm', 'whois.nic.dm', None),
127 | ('.do', 'http://www.nic.do/whois-h.php3', 'WEB'),
128 | ('.dz', 'whois.nic.dz', None),
129 | ('.ec', 'whois.nic.ec', None),
130 | ('.ee', 'whois.tld.ee', None),
131 | ('.eg', '', 'NONE'),
132 | ('.er', '', 'NONE'),
133 | ('.es', 'https://www.nic.es/', 'WEB'),
134 | ('.et', '', 'NONE'),
135 | ('.eu', 'whois.eu', None),
136 | ('.fi', 'whois.fi', None),
137 | ('.fj', 'whois.usp.ac.fj', None),
138 | ('.fk', '', 'NONE'),
139 | ('.fm', 'http://dot.fm/whois.html', 'WEB'),
140 | ('.fo', 'whois.nic.fo', None),
141 | ('.fr', 'whois.nic.fr', None),
142 | ('.ga', '', 'whois.dot.ga'),
143 | ('.gb', 'NONE', None),
144 | ('.gd', 'whois.nic.gd', None),
145 | ('.ge', 'http://www.registration.ge/', 'WEB'),
146 | ('.gf', 'https://www.dom-enic.com/whois.html', 'WEB'),
147 | ('.gg', 'whois.gg', None),
148 | ('.gh', 'http://www.nic.gh/customer/search_c.htm', 'WEB'),
149 | ('.gi', 'AFILIAS', None),
150 | ('.gl', 'whois.nic.gl', None),
151 | ('.gm', 'http://www.nic.gm/htmlpages/whois.htm', 'WEB'),
152 | ('.gn', '', 'NONE'),
153 | ('.gp', 'https://www.dom-enic.com/whois.html', 'WEB'),
154 | ('.gq', 'whois.dominio.gq', None),
155 | ('.gr', 'https://grweb.ics.forth.gr/Whois?lang=en', 'WEB'),
156 | ('.gs', 'whois.nic.gs', None),
157 | ('.gt', 'http://www.gt/who_is.html', 'WEB'),
158 | ('.gu', 'http://gadao.gov.gu/domainsearch.htm', 'WEB'),
159 | ('.gw', '', 'NONE'),
160 | ('.gy', 'whois.registry.gy', None),
161 | ('.hk', 'whois.hkirc.hk', None),
162 | ('.hm', 'whois.registry.hm', None),
163 | ('.hn', 'whois.nic.hn', None),
164 | ('.hr', 'whois.dns.hr', None),
165 | ('.ht', 'whois.nic.ht', None),
166 | ('.hu', 'whois.nic.hu', None),
167 | ('.id', 'whois.pandi.or.id', None),
168 | ('.ie', 'whois.domainregistry.ie', None),
169 | ('.il', 'whois.isoc.org.il', None),
170 | ('.im', 'whois.nic.im', None),
171 | ('.in', '', 'whois.inregistry.net'),
172 | ('.io', 'whois.nic.io', None),
173 | ('.iq', '', 'whois.cmc.iq'),
174 | ('.ir', 'whois.nic.ir', None),
175 | ('.is', 'whois.isnic.is', None),
176 | ('.it', 'whois.nic.it', None),
177 | ('.je', 'whois.je', None),
178 | ('.jm', '', 'NONE'),
179 | ('.jo', 'http://www.dns.jo/Whois.aspx', 'WEB'),
180 | ('.jp', 'whois.jprs.jp', None),
181 | ('.ke', 'whois.kenic.or.ke', None),
182 | ('.kg', 'whois.domain.kg', None),
183 | ('.kh', '', 'NONE'),
184 | ('.ki', 'whois.nic.mu', None),
185 | ('.km', '', 'NONE'),
186 | ('.kn', 'http://www.nic.kn/', 'WEB'),
187 | ('.kp', '', 'NONE'),
188 | ('.kr', 'whois.kr', None),
189 | ('.kw', 'http://www.kw/', 'WEB'),
190 | ('.ky', 'http://kynseweb.messagesecure.com/kywebadmin/', 'WEB'),
191 | ('.kz', 'whois.nic.kz', None),
192 | ('.la', 'whois.nic.la', None),
193 | ('.lb', 'http://www.aub.edu.lb/lbdr/', 'WEB'),
194 | ('.lc', 'AFILIAS', None),
195 | ('.li', 'whois.nic.li', None),
196 | ('.lk', 'whois.nic.lk', None),
197 | ('.lr', '', 'NONE'),
198 | ('.ls', 'http://www.co.ls/co.asp', 'WEB'),
199 | ('.lt', 'whois.domreg.lt', None),
200 | ('.lu', 'whois.dns.lu', None),
201 | ('.lv', 'whois.nic.lv', None),
202 | ('.ly', 'whois.nic.ly', None),
203 | ('.ma', '', 'whois.iam.net.ma'),
204 | ('.mc', '', 'NONE'),
205 | ('.md', 'http://www.dns.md/wh1.php', 'WEB'),
206 | ('.me', 'whois.nic.me', None),
207 | ('.mg', 'whois.nic.mg', None),
208 | ('.mh', '', 'NONE'),
209 | ('.mk', 'whois.marnet.mk', None),
210 | ('.ml', '', 'whois.dot.ml'),
211 | ('.mm', '', 'NONE'),
212 | ('.mn', 'whois.nic.mn', None),
213 | ('.mo', 'http://www.monic.net.mo/', 'WEB'),
214 | ('.mp', '', 'NONE'),
215 | ('.mq', 'https://www.dom-enic.com/whois.html', 'WEB'),
216 | ('.mr', '', 'NONE'),
217 | ('.ms', 'whois.nic.ms', None),
218 | ('.mt', 'https://www.nic.org.mt/dotmt/', 'WEB'),
219 | ('.mu', 'whois.nic.mu', None),
220 | ('.mv', '', 'NONE'),
221 | ('.mw', 'http://www.registrar.mw/', 'WEB'),
222 | ('.mx', 'whois.mx', None),
223 | ('.my', 'whois.mynic.my', None),
224 | ('.mz', 'whois.nic.mz', None),
225 | ('.na', 'whois.na-nic.com.na', None),
226 | ('.nc', 'whois.nc', None),
227 | ('.ne', '', 'NONE'),
228 | ('.nf', 'whois.nic.nf', None),
229 | ('.ng', 'whois.nic.net.ng', None),
230 | ('.ni', 'http://www.nic.ni/', 'WEB'),
231 | ('.nl', 'whois.domain-registry.nl', None),
232 | ('.no', 'whois.norid.no', None),
233 | ('.np', 'http://register.mos.com.np/userSearchInc.asp', 'WEB'),
234 | ('.nr', 'http://www.cenpac.net.nr/dns/whois.html', 'WEB'),
235 | ('.nu', 'whois.iis.nu', None),
236 | ('.nz', 'whois.srs.net.nz', None),
237 | ('.om', 'whois.registry.om', None),
238 | ('.pa', 'http://www.nic.pa/', 'WEB'),
239 | ('.pe', 'kero.yachay.pe', None),
240 | ('.pf', 'whois.registry.pf', None),
241 | ('.pg', '', 'NONE'),
242 | ('.ph', 'http://www.dot.ph/whois', 'WEB'),
243 | ('.pk', 'http://www.pknic.net.pk/', 'WEB'),
244 | ('.co.pl', '', 'whois.co.pl'),
245 | ('.pl', 'whois.dns.pl', None),
246 | ('.pm', 'whois.nic.pm', None),
247 | ('.pn', 'http://www.pitcairn.pn/PnRegistry/', 'WEB'),
248 | ('.pr', 'whois.nic.pr', None),
249 | ('.ps', 'whois.pnina.ps', None),
250 | ('.pt', 'whois.dns.pt', None),
251 | ('.pw', 'whois.nic.pw', None),
252 | ('.py', 'http://www.nic.py/consultas.html', 'WEB'),
253 | ('.qa', 'whois.registry.qa', None),
254 | ('.re', 'whois.nic.re', None),
255 | ('.ro', 'whois.rotld.ro', None),
256 | ('.rs', 'whois.rnids.rs', None),
257 | ('.edu.ru', 'whois.informika.ru', None),
258 | ('.ru', 'whois.tcinet.ru', None),
259 | ('.rw', '', 'whois.ricta.org.rw'),
260 | ('.sa', 'whois.nic.net.sa', None),
261 | ('.sb', 'whois.nic.sb', None),
262 | ('.sc', '', 'AFILIAS'),
263 | ('.sd', '', 'NONE'),
264 | ('.se', 'whois.iis.se', None),
265 | ('.sg', 'whois.sgnic.sg', None),
266 | ('.sh', 'whois.nic.sh', None),
267 | ('.si', 'whois.arnes.si', None),
268 | ('.sj', '', 'NONE'),
269 | ('.sk', 'whois.sk-nic.sk', None),
270 | ('.sl', 'whois.nic.sl', None),
271 | ('.sm', 'whois.nic.sm', None),
272 | ('.sn', 'whois.nic.sn', None),
273 | ('.so', 'whois.nic.so', None),
274 | ('.sr', '', 'NONE'),
275 | ('.st', 'whois.nic.st', None),
276 | ('.su', 'whois.tcinet.ru', None),
277 | ('.sv', 'http://www.svnet.org.sv/', 'WEB'),
278 | ('.sx', 'whois.sx', None),
279 | ('.sy', 'whois.tld.sy', None),
280 | ('.sz', '', 'NONE'),
281 | ('.tc', 'whois.meridiantld.net', None),
282 | ('.td', 'http://www.nic.td/', 'WEB'),
283 | ('.tf', 'whois.nic.tf', None),
284 | ('.tg', 'http://www.nic.tg/', 'WEB'),
285 | ('.th', 'whois.thnic.co.th', None),
286 | ('.tj', 'http://www.nic.tj/whois.html', 'WEB'),
287 | ('.tk', 'whois.dot.tk', None),
288 | ('.tl', 'whois.nic.tl', None),
289 | ('.tm', 'whois.nic.tm', None),
290 | ('.tn', 'whois.ati.tn', None),
291 | ('.to', 'whois.tonic.to', None),
292 | ('.tp', '', 'NONE'),
293 | ('.tr', 'whois.nic.tr', None),
294 | ('.tt', 'http://www.nic.tt/cgi-bin/search.pl', 'WEB'),
295 | ('.tv', 'tvwhois.verisign-grs.com', 'VERISIGN'),
296 | ('.tw', 'whois.twnic.net.tw', None),
297 | ('.tz', 'whois.tznic.or.tz', None),
298 | ('.biz.ua', 'whois.biz.ua', None),
299 | ('.co.ua', 'whois.co.ua', None),
300 | ('.pp.ua', 'whois.pp.ua', None),
301 | ('.ua', 'whois.ua', None),
302 | ('.ug', 'whois.co.ug', None),
303 | ('.ac.uk', 'whois.ja.net', None),
304 | ('.bl.uk', 'NONE', None),
305 | ('.british-library.uk', 'NONE', None),
306 | ('.gov.uk', 'whois.ja.net', None),
307 | ('.icnet.uk', 'NONE', None),
308 | ('.jet.uk', 'NONE', None),
309 | ('.mod.uk', 'NONE', None),
310 | ('.nhs.uk', 'NONE', None),
311 | ('.nls.uk', 'NONE', None),
312 | ('.parliament.uk', 'NONE', None),
313 | ('.police.uk', 'NONE', None),
314 | ('.uk', 'whois.nic.uk', None),
315 | ('.fed.us', 'whois.nic.gov', None),
316 | ('.us', 'whois.nic.us', None),
317 | ('.com.uy', 'https://nic.anteldata.com.uy/dns/consultaWhois/whois.action', 'WEB'),
318 | ('.uy', 'whois.nic.org.uy', None),
319 | ('.uz', 'whois.cctld.uz', None),
320 | ('.va', 'NONE', None),
321 | ('.vc', 'AFILIAS', None),
322 | ('.ve', 'whois.nic.ve', None),
323 | ('.vg', 'whois.adamsnames.tc', None),
324 | ('.vi', 'http://www.nic.vi/whoisform.htm', 'WEB'),
325 | ('.vn', 'http://www.vnnic.vn/en/domain', 'WEB'),
326 | ('.vu', 'vunic.vu', None),
327 | ('.wf', 'whois.nic.wf', None),
328 | ('.ws', 'whois.website.ws', None),
329 | ('.ye', '', 'NONE'),
330 | ('.yt', 'whois.nic.yt', None),
331 | ('.ac.za', 'whois.ac.za', None),
332 | ('.alt.za', 'whois.alt.za', None),
333 | ('.co.za', 'whois.registry.net.za', None),
334 | ('.gov.za', 'whois.gov.za', None),
335 | ('.net.za', 'whois.net.za', None),
336 | ('.org.za', 'http://www.org.za/', 'WEB'),
337 | ('.web.za', 'whois.web.za', None),
338 | ('.za', '', 'NONE'),
339 | ('.zm', 'whois.nic.zm', None),
340 | ('.zw', '', 'NONE'),
341 | ('.xn--3e0b707e', '', 'whois.kr'),
342 | ('.xn--45brj9c', '', 'whois.inregistry.net'),
343 | ('.xn--80ao21a', '', 'whois.nic.kz'),
344 | ('.xn--90a3ac', '', 'whois.rnids.rs'),
345 | ('.xn--clchc0ea0b2g2a9gcd', '', 'whois.sgnic.sg'),
346 | ('.xn--d1alf', '', 'whois.marnet.mk'),
347 | ('.xn--fiqs8s', '', 'cwhois.cnnic.cn'),
348 | ('.xn--fiqz9s', '', 'cwhois.cnnic.cn'),
349 | ('.xn--fpcrj9c3d', '', 'whois.inregistry.net'),
350 | ('.xn--fzc2c9e2c', '', 'whois.nic.lk'),
351 | ('.xn--gecrj9c', '', 'whois.inregistry.net'),
352 | ('.xn--h2brj9c', '', 'whois.inregistry.net'),
353 | ('.xn--j1amh', '', 'whois.dotukr.com'),
354 | ('.xn--j6w193g', '', 'whois.hkirc.hk'),
355 | ('.xn--kprw13d', '', 'whois.twnic.net.tw'),
356 | ('.xn--kpry57d', '', 'whois.twnic.net.tw'),
357 | ('.xn--l1acc', '', 'whois.nic.mn'),
358 | ('.xn--lgbbat1ad8j', '', 'whois.nic.dz'),
359 | ('.xn--mgb9awbf', '', 'whois.registry.om'),
360 | ('.xn--mgba3a4f16a', '', 'whois.nic.ir'),
361 | ('.xn--mgbaam7a8h', '', 'whois.aeda.net.ae'),
362 | ('.xn--mgbayh7gpa', 'http://idn.jo/whois_a.aspx', 'WEB'),
363 | ('.xn--mgbbh1a71e', '', 'whois.inregistry.net'),
364 | ('.xn--mgbc0a9azcg', '', 'NONE'),
365 | ('.xn--mgberp4a5d4ar', '', 'whois.nic.net.sa'),
366 | ('.xn--mgbx4cd0ab', '', 'whois.mynic.my'),
367 | ('.xn--node', '', 'whois.itdc.ge'),
368 | ('.xn--o3cw4h', '', 'whois.thnic.co.th'),
369 | ('.xn--ogbpf8fl', '', 'whois.tld.sy'),
370 | ('.xn--p1ai', '', 'whois.tcinet.ru'),
371 | ('.xn--pgbs0dh', '', 'NONE'),
372 | ('.xn--s9brj9c', '', 'whois.inregistry.net'),
373 | ('.xn--wgbh1c', '', 'whois.dotmasr.eg'),
374 | ('.xn--wgbl6a', '', 'whois.registry.qa'),
375 | ('.xn--xkc2al3hye2a', '', 'whois.nic.lk'),
376 | ('.xn--xkc2dl3a5ee0h', '', 'whois.inregistry.net'),
377 | ('.xn--yfro4i67o', '', 'whois.sgnic.sg'),
378 | ('.xn--ygbi2ammx', '', 'whois.pnina.ps'),
379 | ('.abogado', 'whois.abogado', None),
380 | ('.academy', 'whois.academy', None),
381 | ('.accountants', 'whois.accountants', None),
382 | ('.active', 'whois.active', None),
383 | ('.actor', 'whois.actor', None),
384 | ('.agency', 'whois.agency', None),
385 | ('.airforce', 'whois.airforce', None),
386 | ('.allfinanz', 'whois.allfinanz', None),
387 | ('.alsace', 'whois.alsace', None),
388 | ('.archi', 'whois.archi', None),
389 | ('.army', 'whois.army', None),
390 | ('.associates', 'whois.associates', None),
391 | ('.attorney', 'whois.attorney', None),
392 | ('.auction', 'whois.auction', None),
393 | ('.audio', 'whois.audio', None),
394 | ('.autos', 'whois.autos', None),
395 | ('.axa', 'whois.axa', None),
396 | ('.band', 'whois.band', None),
397 | ('.bar', 'whois.bar', None),
398 | ('.bargains', 'whois.bargains', None),
399 | ('.bayern', 'whois.bayern', None),
400 | ('.beer', 'whois.beer', None),
401 | ('.berlin', 'whois.berlin', None),
402 | ('.best', 'whois.best', None),
403 | ('.bid', 'whois.bid', None),
404 | ('.bike', 'whois.bike', None),
405 | ('.bio', 'whois.bio', None),
406 | ('.black', 'whois.black', None),
407 | ('.blackfriday', 'whois.blackfriday', None),
408 | ('.bloomberg', 'whois.bloomberg', None),
409 | ('.blue', 'whois.blue', None),
410 | ('.bmw', 'whois.bmw', None),
411 | ('.bnpparibas', 'whois.bnpparibas', None),
412 | ('.boo', 'whois.boo', None),
413 | ('.boutique', 'whois.boutique', None),
414 | ('.brussels', 'whois.brussels', None),
415 | ('.budapest', 'whois.budapest', None),
416 | ('.build', 'whois.build', None),
417 | ('.builders', 'whois.builders', None),
418 | ('.business', 'whois.business', None),
419 | ('.buzz', 'whois.buzz', None),
420 | ('.bzh', 'whois.bzh', None),
421 | ('.cab', 'whois.cab', None),
422 | ('.cal', 'whois.cal', None),
423 | ('.camera', 'whois.camera', None),
424 | ('.camp', 'whois.camp', None),
425 | ('.cancerresearch', 'whois.cancerresearch', None),
426 | ('.capetown', 'whois.capetown', None),
427 | ('.capital', 'whois.capital', None),
428 | ('.caravan', 'whois.caravan', None),
429 | ('.cards', 'whois.cards', None),
430 | ('.care', 'whois.care', None),
431 | ('.career', 'whois.career', None),
432 | ('.careers', 'whois.careers', None),
433 | ('.casa', 'whois.casa', None),
434 | ('.cash', 'whois.cash', None),
435 | ('.catering', 'whois.catering', None),
436 | ('.center', 'whois.center', None),
437 | ('.ceo', 'whois.ceo', None),
438 | ('.cern', 'whois.cern', None),
439 | ('.channel', 'whois.channel', None),
440 | ('.cheap', 'whois.cheap', None),
441 | ('.christmas', 'whois.christmas', None),
442 | ('.chrome', 'whois.chrome', None),
443 | ('.church', 'whois.church', None),
444 | ('.citic', 'whois.citic', None),
445 | ('.city', 'whois.city', None),
446 | ('.claims', 'whois.claims', None),
447 | ('.cleaning', 'whois.cleaning', None),
448 | ('.click', 'whois.click', None),
449 | ('.clinic', 'whois.clinic', None),
450 | ('.clothing', 'whois.clothing', None),
451 | ('.club', 'whois.club', None),
452 | ('.codes', 'whois.codes', None),
453 | ('.coffee', 'whois.coffee', None),
454 | ('.college', 'whois.college', None),
455 | ('.cologne', 'whois.cologne', None),
456 | ('.com', 'whois.com', None),
457 | ('.community', 'whois.community', None),
458 | ('.company', 'whois.company', None),
459 | ('.computer', 'whois.computer', None),
460 | ('.condos', 'whois.condos', None),
461 | ('.construction', 'whois.construction', None),
462 | ('.consulting', 'whois.consulting', None),
463 | ('.contractors', 'whois.contractors', None),
464 | ('.cooking', 'whois.cooking', None),
465 | ('.cool', 'whois.cool', None),
466 | ('.country', 'whois.country', None),
467 | ('.credit', 'whois.credit', None),
468 | ('.creditcard', 'whois.creditcard', None),
469 | ('.crs', 'whois.crs', None),
470 | ('.cruises', 'whois.cruises', None),
471 | ('.cuisinella', 'whois.cuisinella', None),
472 | ('.cymru', 'whois.cymru', None),
473 | ('.dad', 'whois.dad', None),
474 | ('.dance', 'whois.dance', None),
475 | ('.dating', 'whois.dating', None),
476 | ('.day', 'whois.day', None),
477 | ('.deals', 'whois.deals', None),
478 | ('.degree', 'whois.degree', None),
479 | ('.delivery', 'whois.delivery', None),
480 | ('.democrat', 'whois.democrat', None),
481 | ('.dental', 'whois.dental', None),
482 | ('.dentist', 'whois.dentist', None),
483 | ('.desi', 'whois.desi', None),
484 | ('.diamonds', 'whois.diamonds', None),
485 | ('.diet', 'whois.diet', None),
486 | ('.digital', 'whois.digital', None),
487 | ('.direct', 'whois.direct', None),
488 | ('.directory', 'whois.directory', None),
489 | ('.discount', 'whois.discount', None),
490 | ('.dnp', 'whois.dnp', None),
491 | ('.domains', 'whois.domains', None),
492 | ('.durban', 'whois.durban', None),
493 | ('.dvag', 'whois.dvag', None),
494 | ('.eat', 'whois.eat', None),
495 | ('.education', 'whois.education', None),
496 | ('.email', 'whois.email', None),
497 | ('.emerck', 'whois.emerck', None),
498 | ('.energy', 'whois.energy', None),
499 | ('.engineer', 'whois.engineer', None),
500 | ('.engineering', 'whois.engineering', None),
501 | ('.enterprises', 'whois.enterprises', None),
502 | ('.equipment', 'whois.equipment', None),
503 | ('.esq', 'whois.esq', None),
504 | ('.estate', 'whois.estate', None),
505 | ('.eus', 'whois.eus', None),
506 | ('.events', 'whois.events', None),
507 | ('.exchange', 'whois.exchange', None),
508 | ('.expert', 'whois.expert', None),
509 | ('.exposed', 'whois.exposed', None),
510 | ('.fail', 'whois.fail', None),
511 | ('.farm', 'whois.farm', None),
512 | ('.feedback', 'whois.feedback', None),
513 | ('.finance', 'whois.finance', None),
514 | ('.financial', 'whois.financial', None),
515 | ('.fish', 'whois.fish', None),
516 | ('.fishing', 'whois.fishing', None),
517 | ('.fitness', 'whois.fitness', None),
518 | ('.flights', 'whois.flights', None),
519 | ('.florist', 'whois.florist', None),
520 | ('.flsmidth', 'whois.flsmidth', None),
521 | ('.fly', 'whois.fly', None),
522 | ('.foo', 'whois.foo', None),
523 | ('.forsale', 'whois.forsale', None),
524 | ('.foundation', 'whois.foundation', None),
525 | ('.frl', 'whois.frl', None),
526 | ('.frogans', 'whois.frogans', None),
527 | ('.fund', 'whois.fund', None),
528 | ('.furniture', 'whois.furniture', None),
529 | ('.futbol', 'whois.futbol', None),
530 | ('.gal', 'whois.gal', None),
531 | ('.gallery', 'whois.gallery', None),
532 | ('.gbiz', 'whois.gbiz', None),
533 | ('.gent', 'whois.gent', None),
534 | ('.gift', 'whois.gift', None),
535 | ('.gifts', 'whois.gifts', None),
536 | ('.gives', 'whois.gives', None),
537 | ('.glass', 'whois.glass', None),
538 | ('.gle', 'whois.gle', None),
539 | ('.global', 'whois.global', None),
540 | ('.globo', 'whois.globo', None),
541 | ('.gmail', 'whois.gmail', None),
542 | ('.gmo', 'whois.gmo', None),
543 | ('.gmx', 'whois.gmx', None),
544 | ('.google', 'whois.google', None),
545 | ('.gop', 'whois.gop', None),
546 | ('.graphics', 'whois.graphics', None),
547 | ('.gratis', 'whois.gratis', None),
548 | ('.green', 'whois.green', None),
549 | ('.gripe', 'whois.gripe', None),
550 | ('.guide', 'whois.guide', None),
551 | ('.guitars', 'whois.guitars', None),
552 | ('.guru', 'whois.guru', None),
553 | ('.hamburg', 'whois.hamburg', None),
554 | ('.haus', 'whois.haus', None),
555 | ('.healthcare', 'whois.healthcare', None),
556 | ('.help', 'whois.help', None),
557 | ('.here', 'whois.here', None),
558 | ('.hiphop', 'whois.hiphop', None),
559 | ('.hiv', 'whois.hiv', None),
560 | ('.holdings', 'whois.holdings', None),
561 | ('.holiday', 'whois.holiday', None),
562 | ('.homes', 'whois.homes', None),
563 | ('.horse', 'whois.horse', None),
564 | ('.host', 'whois.host', None),
565 | ('.hosting', 'whois.hosting', None),
566 | ('.house', 'whois.house', None),
567 | ('.how', 'whois.how', None),
568 | ('.ibm', 'whois.ibm', None),
569 | ('.immo', 'whois.immo', None),
570 | ('.immobilien', 'whois.immobilien', None),
571 | ('.industries', 'whois.industries', None),
572 | ('.info', 'whois.info', None),
573 | ('.ing', 'whois.ing', None),
574 | ('.ink', 'whois.ink', None),
575 | ('.institute', 'whois.institute', None),
576 | ('.insure', 'whois.insure', None),
577 | ('.international', 'whois.international', None),
578 | ('.investments', 'whois.investments', None),
579 | ('.jetzt', 'whois.jetzt', None),
580 | ('.joburg', 'whois.joburg', None),
581 | ('.juegos', 'whois.juegos', None),
582 | ('.kaufen', 'whois.kaufen', None),
583 | ('.kim', 'whois.kim', None),
584 | ('.kitchen', 'whois.kitchen', None),
585 | ('.kiwi', 'whois.kiwi', None),
586 | ('.koeln', 'whois.koeln', None),
587 | ('.krd', 'whois.krd', None),
588 | ('.kred', 'whois.kred', None),
589 | ('.lacaixa', 'whois.lacaixa', None),
590 | ('.land', 'whois.land', None),
591 | ('.lawyer', 'whois.lawyer', None),
592 | ('.lease', 'whois.lease', None),
593 | ('.lgbt', 'whois.lgbt', None),
594 | ('.life', 'whois.life', None),
595 | ('.lighting', 'whois.lighting', None),
596 | ('.limited', 'whois.limited', None),
597 | ('.limo', 'whois.limo', None),
598 | ('.link', 'whois.link', None),
599 | ('.loans', 'whois.loans', None),
600 | ('.london', 'whois.london', None),
601 | ('.lotto', 'whois.lotto', None),
602 | ('.ltda', 'whois.ltda', None),
603 | ('.luxe', 'whois.luxe', None),
604 | ('.luxury', 'whois.luxury', None),
605 | ('.maison', 'whois.maison', None),
606 | ('.management', 'whois.management', None),
607 | ('.mango', 'whois.mango', None),
608 | ('.market', 'whois.market', None),
609 | ('.marketing', 'whois.marketing', None),
610 | ('.media', 'whois.media', None),
611 | ('.meet', 'whois.meet', None),
612 | ('.melbourne', 'whois.melbourne', None),
613 | ('.meme', 'whois.meme', None),
614 | ('.menu', 'whois.menu', None),
615 | ('.miami', 'whois.miami', None),
616 | ('.mini', 'whois.mini', None),
617 | ('.moda', 'whois.moda', None),
618 | ('.moe', 'whois.moe', None),
619 | ('.monash', 'whois.monash', None),
620 | ('.mortgage', 'whois.mortgage', None),
621 | ('.moscow', 'whois.moscow', None),
622 | ('.motorcycles', 'whois.motorcycles', None),
623 | ('.mov', 'whois.mov', None),
624 | ('.nagoya', 'whois.nagoya', None),
625 | ('.navy', 'whois.navy', None),
626 | ('.net', 'whois.net', None),
627 | ('.network', 'whois.network', None),
628 | ('.neustar', 'whois.neustar', None),
629 | ('.new', 'whois.new', None),
630 | ('.nexus', 'whois.nexus', None),
631 | ('.ngo', 'whois.ngo', None),
632 | ('.nhk', 'whois.nhk', None),
633 | ('.ninja', 'whois.ninja', None),
634 | ('.nra', 'whois.nra', None),
635 | ('.nrw', 'whois.nrw', None),
636 | ('.nyc', 'whois.nyc', None),
637 | ('.okinawa', 'whois.okinawa', None),
638 | ('.ong', 'whois.ong', None),
639 | ('.onl', 'whois.onl', None),
640 | ('.ooo', 'whois.ooo', None),
641 | ('.org', 'whois.org', None),
642 | ('.organic', 'whois.organic', None),
643 | ('.otsuka', 'whois.otsuka', None),
644 | ('.ovh', 'whois.ovh', None),
645 | ('.paris', 'whois.paris', None),
646 | ('.partners', 'whois.partners', None),
647 | ('.parts', 'whois.parts', None),
648 | ('.pharmacy', 'whois.pharmacy', None),
649 | ('.photo', 'whois.photo', None),
650 | ('.photography', 'whois.photography', None),
651 | ('.photos', 'whois.photos', None),
652 | ('.physio', 'whois.physio', None),
653 | ('.pics', 'whois.pics', None),
654 | ('.pictures', 'whois.pictures', None),
655 | ('.pink', 'whois.pink', None),
656 | ('.pizza', 'whois.pizza', None),
657 | ('.place', 'whois.place', None),
658 | ('.plumbing', 'whois.plumbing', None),
659 | ('.pohl', 'whois.pohl', None),
660 | ('.poker', 'whois.poker', None),
661 | ('.praxi', 'whois.praxi', None),
662 | ('.press', 'whois.press', None),
663 | ('.prod', 'whois.prod', None),
664 | ('.productions', 'whois.productions', None),
665 | ('.prof', 'whois.prof', None),
666 | ('.properties', 'whois.properties', None),
667 | ('.property', 'whois.property', None),
668 | ('.pub', 'whois.pub', None),
669 | ('.qpon', 'whois.qpon', None),
670 | ('.quebec', 'whois.quebec', None),
671 | ('.realtor', 'whois.realtor', None),
672 | ('.recipes', 'whois.recipes', None),
673 | ('.red', 'whois.red', None),
674 | ('.rehab', 'whois.rehab', None),
675 | ('.reise', 'whois.reise', None),
676 | ('.reisen', 'whois.reisen', None),
677 | ('.ren', 'whois.ren', None),
678 | ('.rentals', 'whois.rentals', None),
679 | ('.repair', 'whois.repair', None),
680 | ('.report', 'whois.report', None),
681 | ('.republican', 'whois.republican', None),
682 | ('.rest', 'whois.rest', None),
683 | ('.restaurant', 'whois.restaurant', None),
684 | ('.reviews', 'whois.reviews', None),
685 | ('.rich', 'whois.rich', None),
686 | ('.rio', 'whois.rio', None),
687 | ('.rip', 'whois.rip', None),
688 | ('.rocks', 'whois.rocks', None),
689 | ('.rodeo', 'whois.rodeo', None),
690 | ('.rsvp', 'whois.rsvp', None),
691 | ('.ruhr', 'whois.ruhr', None),
692 | ('.ryukyu', 'whois.ryukyu', None),
693 | ('.saarland', 'whois.saarland', None),
694 | ('.sarl', 'whois.sarl', None),
695 | ('.sca', 'whois.sca', None),
696 | ('.scb', 'whois.scb', None),
697 | ('.schmidt', 'whois.schmidt', None),
698 | ('.schule', 'whois.schule', None),
699 | ('.scot', 'whois.scot', None),
700 | ('.services', 'whois.services', None),
701 | ('.sexy', 'whois.sexy', None),
702 | ('.shiksha', 'whois.shiksha', None),
703 | ('.shoes', 'whois.shoes', None),
704 | ('.singles', 'whois.singles', None),
705 | ('.social', 'whois.social', None),
706 | ('.software', 'whois.software', None),
707 | ('.sohu', 'whois.sohu', None),
708 | ('.solar', 'whois.solar', None),
709 | ('.solutions', 'whois.solutions', None),
710 | ('.soy', 'whois.soy', None),
711 | ('.space', 'whois.space', None),
712 | ('.spiegel', 'whois.spiegel', None),
713 | ('.supplies', 'whois.supplies', None),
714 | ('.supply', 'whois.supply', None),
715 | ('.support', 'whois.support', None),
716 | ('.surf', 'whois.surf', None),
717 | ('.surgery', 'whois.surgery', None),
718 | ('.suzuki', 'whois.suzuki', None),
719 | ('.sydney', 'whois.sydney', None),
720 | ('.systems', 'whois.systems', None),
721 | ('.taipei', 'whois.taipei', None),
722 | ('.tatar', 'whois.tatar', None),
723 | ('.tattoo', 'whois.tattoo', None),
724 | ('.tax', 'whois.tax', None),
725 | ('.technology', 'whois.technology', None),
726 | ('.tienda', 'whois.tienda', None),
727 | ('.tips', 'whois.tips', None),
728 | ('.tirol', 'whois.tirol', None),
729 | ('.today', 'whois.today', None),
730 | ('.tokyo', 'whois.tokyo', None),
731 | ('.tools', 'whois.tools', None),
732 | ('.top', 'whois.top', None),
733 | ('.town', 'whois.town', None),
734 | ('.toys', 'whois.toys', None),
735 | ('.trade', 'whois.trade', None),
736 | ('.training', 'whois.training', None),
737 | ('.tui', 'whois.tui', None),
738 | ('.university', 'whois.university', None),
739 | ('.uno', 'whois.uno', None),
740 | ('.uol', 'whois.uol', None),
741 | ('.vacations', 'whois.vacations', None),
742 | ('.vegas', 'whois.vegas', None),
743 | ('.ventures', 'whois.ventures', None),
744 | ('.versicherung', 'whois.versicherung', None),
745 | ('.vet', 'whois.vet', None),
746 | ('.viajes', 'whois.viajes', None),
747 | ('.villas', 'whois.villas', None),
748 | ('.vision', 'whois.vision', None),
749 | ('.vlaanderen', 'whois.vlaanderen', None),
750 | ('.vodka', 'whois.vodka', None),
751 | ('.vote', 'whois.vote', None),
752 | ('.voting', 'whois.voting', None),
753 | ('.voto', 'whois.voto', None),
754 | ('.voyage', 'whois.voyage', None),
755 | ('.wales', 'whois.wales', None),
756 | ('.wang', 'whois.wang', None),
757 | ('.watch', 'whois.watch', None),
758 | ('.webcam', 'whois.webcam', None),
759 | ('.website', 'whois.website', None),
760 | ('.wed', 'whois.wed', None),
761 | ('.wedding', 'whois.wedding', None),
762 | ('.whoswho', 'whois.whoswho', None),
763 | ('.wien', 'whois.wien', None),
764 | ('.wiki', 'whois.wiki', None),
765 | ('.williamhill', 'whois.williamhill', None),
766 | ('.wme', 'whois.wme', None),
767 | ('.work', 'whois.work', None),
768 | ('.works', 'whois.works', None),
769 | ('.world', 'whois.world', None),
770 | ('.wtc', 'whois.wtc', None),
771 | ('.wtf', 'whois.wtf', None),
772 | ('.xyz', 'whois.xyz', None),
773 | ('.yachts', 'whois.yachts', None),
774 | ('.yandex', 'whois.yandex', None),
775 | ('.yoga', 'whois.yoga', None),
776 | ('.yokohama', 'whois.yokohama', None),
777 | ('.youtube', 'whois.youtube', None),
778 | ('.zip', 'whois.zip', None),
779 | ('.zone', 'whois.zone', None),
780 | ]
781 |
782 | def whois_request(domain, server, port=43):
783 | sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
784 | sock.connect((server, port))
785 | sock.send(("%s\r\n" % domain).encode("utf-8"))
786 | buff = b""
787 | while True:
788 | data = sock.recv(1024)
789 | if len(data) == 0:
790 | break
791 | buff += data
792 | return buff.decode("utf-8")
793 |
794 | #print whois_request("baidu.com","whois.verisign-grs.com")
795 | def whois(domain):
796 | r = domain.rindex(".")
797 | houz = domain[r:]
798 | for data in TLDS:
799 | if data[0] == houz:
800 | return whois_request(domain,data[1])
801 | return ""
802 |
803 |
--------------------------------------------------------------------------------