├── .gitignore ├── README.md ├── baiduip.py ├── cms.py ├── config └── dna.txt ├── myweb.py ├── password.py ├── skg.py ├── templates ├── base.html ├── cms.html ├── ip.html ├── password.html ├── skg.html ├── whois.html └── wooyun.html └── 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 -------------------------------------------------------------------------------- /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 -------------------------------------------------------------------------------- /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 -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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/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 |

138 | {% if title %} 139 | {{title}} 140 | {% else %} 141 | 在线渗透平台 142 | {% endif %} 143 |

144 | 147 | 164 |
165 | 183 |
184 |
  • 185 | 186 | 187 | 192 |
  • 193 |
    194 |
    195 | {% block content %}{% endblock %} 196 |
    197 | 198 |
    199 |
    200 |

    © 2016 在线渗透测试平台 (学习中...)

    201 |
    202 | 203 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | -------------------------------------------------------------------------------- /templates/cms.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 |
    4 |
    5 |
    6 |

    CMS在线识别

    7 |
    8 |
    9 |
    10 |
    11 | 12 |
    13 |
    14 | 15 |
    16 | 17 |
    18 |
    19 |
    20 |
    21 |
    22 | 23 |
    24 |
    25 |
    26 |
    27 | {% if data %} 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | {% if data.url %} 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | {% else %} 50 | 51 | 52 | 53 | 54 | {% endif %} 55 | 56 |
    信息内容
    查询网址{{data.url}}
    CMS识别{{data.name}}
    MD5匹配值{{data.md5}}
    匹配失败{{data.error}}
    {% endif %} 57 | 58 | 59 | 60 |
    61 |
    62 |
    63 |
    64 |
    65 | 66 |
    67 | {% endblock %} 68 | -------------------------------------------------------------------------------- /templates/ip.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 |
    4 |
    5 |
    6 |

    IP详细地址定位

    7 |
    8 |
    9 |
    10 |
    11 | 12 |
    13 |
    14 | 15 |
    16 | 17 |
    18 |
    19 |
    20 |
    21 |
    22 | 23 |
    24 |
    25 |
    26 |
    27 | {% if data %} 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 |
    信息内容
    定位半径{{data.radius}}米
    所在经度{{data.lng}}
    所在纬度{{data.lat}}
    详细地址{{data.formatted_address}}
    行政区划代码(身份证前六位){{data.admin_area_code}}
    静态地图
    62 | {% endif %} 63 | 64 | 65 |
    66 |
    67 |
    68 |
    69 |
    70 | 71 |
    72 | {% endblock %} 73 | -------------------------------------------------------------------------------- /templates/password.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 |
    4 |
    5 |
    6 |

    在线社工字典生成

    7 |
    8 |

    利用人性的弱点 精准的分析个人密码

    9 | 10 |
    11 |
    12 |
    13 | 14 |
    15 | 16 |
    17 | 18 | 19 | 20 | 21 | 22 |
    23 | 24 |
    25 | 26 |
    27 | 28 | 29 | 30 | 31 | 32 | 33 |

    34 | 35 |
    36 | 37 | 38 | 39 | 40 | 41 | 42 |

    43 | 44 |
    45 | 46 | 47 | 48 | 49 | 50 |

    51 | 52 |
    53 | 54 | 55 | 56 | 57 | 58 |

    59 | 60 |
    61 | 62 | 63 | 64 | 65 | 66 |

    67 |
    68 | 69 |
    70 | 71 |
    72 |
    73 |
    74 | 75 |
    76 |
    77 |
    78 |
    79 |
    80 | 81 |
    82 |
    83 |
    84 |
    85 | {% if data %} 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | {%for pass in data %} 94 | 95 | 96 | 97 | {%endfor%} 98 | 99 | 100 |
    生成的密码
    {{pass}}
    101 | {% endif %} 102 | 103 | 104 |
    105 |
    106 |
    107 |
    108 |
    109 | 110 |
    111 | {% endblock %} 112 | -------------------------------------------------------------------------------- /templates/skg.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 |
    4 |
    5 |
    6 |

    社工库在线查询

    7 |
    8 |
    9 |
    10 |
    11 | 12 |
    13 |
    14 | 15 |
    16 | 17 |
    18 |
    19 |
    20 |
    21 |
    22 | 23 |
    24 |
    25 |
    26 |
    27 | {% if data %} 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | {%for pass in data %} 39 | 40 | 41 | 42 | 43 | 44 | 45 | {%endfor%} 46 | 47 |
    用户名密码邮箱来源
    {{pass.u}}{{pass.p}}{{pass.e}}{{pass.s}}
    48 | {% endif %} 49 | 50 | 51 |
    52 |
    53 |
    54 |
    55 |
    56 | 57 |
    58 | {% endblock %} 59 | -------------------------------------------------------------------------------- /templates/whois.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 |
    4 |
    5 |
    6 |

    Whois 在线查询

    7 |
    8 |
    9 |
    10 |
    11 | 12 |
    13 |
    14 | 15 |
    16 | 17 |
    18 |
    19 |
    20 |
    21 |
    22 | 23 |
    24 |
    25 |
    26 |
    27 | {% if data %} 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
    详细信息
    {{data|safe}}
    40 | {% endif %} 41 | 42 | 43 |
    44 |
    45 |
    46 |
    47 |
    48 | 49 |
    50 | {% endblock %} 51 | -------------------------------------------------------------------------------- /templates/wooyun.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 |
    4 |
    5 |
    6 |

    WooYun漏洞查询

    7 |
    8 |
    9 |
    10 |
    11 | 12 |
    13 |
    14 | 15 |
    16 | 17 |
    18 |
    19 |
    20 |
    21 |
    22 | 23 |
    24 |
    25 |
    26 |
    27 | {% if table %} 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | {% for foo in table %} 38 | 39 | 40 | 41 | 42 | 43 | {% endfor %} 44 | 45 |
    id标题查看
    {{foo.id}}{{foo.title}}查看
    46 | {% if next %} 47 | 51 | {% endif %} 52 | {% endif %} 53 | {% if data %} 54 |

    {{data.title}}

    55 | {{data.text|safe}} 56 | {% endif %} 57 |
    58 |
    59 |
    60 |
    61 |
    62 | 63 |
    64 | {% endblock %} -------------------------------------------------------------------------------- /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 | --------------------------------------------------------------------------------