Skip to content

Commit e442974

Browse files
author
linjun
committed
domainChecker.py check ok.
1 parent 628f0f8 commit e442974

File tree

2 files changed

+162
-1
lines changed

2 files changed

+162
-1
lines changed

domainChecker.py

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# https://checkapi.aliyun.com/check/checkdomain?callback=result&domain=azzzz.shop&token=check-web-hichina-com%3A7s88yvbgwterj87mk5llo6k6owagkw4u
2+
3+
import urllib2
4+
import sys
5+
import array
6+
7+
from utils.utils import *
8+
from multiprocessing.dummy import Pool as ThreadPool
9+
10+
DOMAIN_NAMES_FILE = "DomainNamesFile.txt"
11+
DomainCheckResult = "DomainCheckResult.txt"
12+
13+
14+
def checkDomain(name):
15+
domainName = name + ".com"
16+
reprint("checking "+domainName+" ...")
17+
url = r"https://checkapi.aliyun.com/check/checkdomain?callback=result&domain=" + domainName + r"&token=check-web-hichina-com%3A7s88yvbgwterj87mk5llo6k6owagkw4u"
18+
# url=r"https://checkapi.aliyun.com/check/checkdomain?callback=result&domain=azzzz.shop&token=check-web-hichina-com%3A7s88yvbgwterj87mk5llo6k6owagkw4u"
19+
response = GetUrlContent2(url)
20+
appendStrToFile(response + "\n", DomainCheckResult)
21+
# logl(response)
22+
return "ok"
23+
24+
25+
def strPlusOne(t):
26+
arr = array.array('B', t)
27+
bitCount = len(t)
28+
for bit in range(bitCount - 1, -1, -1):
29+
curChr = arr[bit] + 1
30+
if curChr > ord('z'):
31+
curChr = ord('a')
32+
arr[bit] = curChr
33+
else:
34+
arr[bit] = curChr
35+
break
36+
t = arr.tostring()
37+
return t
38+
39+
40+
def BuildDomainList(fileName):
41+
startName = 'aaaaa'
42+
endName = 'zzzzz'
43+
# nameList = []
44+
logl("Building name list:%s to %s..." % (startName, endName))
45+
while startName != endName:
46+
# nameList.append(startName)
47+
startName = strPlusOne(startName)
48+
reprint(startName)
49+
appendStrToFile(startName + "\n", fileName)
50+
51+
52+
def LoadDomainList(fileName):
53+
nameList = []
54+
f = open(fileName, 'r')
55+
for line in f.readlines():
56+
line = line.strip()
57+
if not len(line) or line.startswith('#'):
58+
continue
59+
nameList.append(line)
60+
return nameList
61+
62+
63+
def CheckAllDomains(nameList):
64+
pool = ThreadPool()
65+
pool.map(checkDomain, nameList)
66+
pool.close()
67+
pool.join()
68+
logl('All done.')
69+
70+
71+
def main():
72+
logl("Loading domain names from %s .." % DOMAIN_NAMES_FILE)
73+
nameList = LoadDomainList(DOMAIN_NAMES_FILE)
74+
logl("%d names loaded."%len(nameList))
75+
logl("Checking...")
76+
CheckAllDomains(nameList)
77+
logl("All done.")
78+
79+
80+
if __name__ == '__main__':
81+
# BuildDomainList(DOMAIN_NAMES_FILE)
82+
main()
83+
# checkDomain("aaaaa")

utils/utils.py

Lines changed: 79 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,53 @@
11
import os
2+
import random
23
import subprocess
34
import threading
45
import time
6+
import urllib
7+
import urllib2
58

69
import chardet
710
import sys
811

12+
import requests
13+
from requests import ConnectionError
14+
15+
USER_AGENTS = [
16+
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
17+
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)",
18+
"Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
19+
"Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)",
20+
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)",
21+
"Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)",
22+
"Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)",
23+
"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)",
24+
"Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6",
25+
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1",
26+
"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0",
27+
"Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5",
28+
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6",
29+
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11",
30+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20",
31+
"Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52",
32+
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11",
33+
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER",
34+
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; LBBROWSER)",
35+
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E; LBBROWSER)",
36+
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.84 Safari/535.11 LBBROWSER",
37+
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)",
38+
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; QQBrowser/7.0.3698.400)",
39+
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)",
40+
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SV1; QQDownload 732; .NET4.0C; .NET4.0E; 360SE)",
41+
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)",
42+
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)",
43+
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1",
44+
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1",
45+
"Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; zh-cn) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5",
46+
"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b13pre) Gecko/20110307 Firefox/4.0b13pre",
47+
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:16.0) Gecko/20100101 Firefox/16.0",
48+
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11",
49+
"Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10"
50+
]
951

1052
def appendStrToFile(sstr, filepath):
1153
f = open(filepath, "a+")
@@ -161,4 +203,40 @@ def writeFile(filename, data):
161203

162204
def getFileMd5(filepath):
163205
return DoCmd("md5sum " + filepath + "|grep -oE '[a-zA-Z0-9]{32}'").strip()
164-
pass
206+
pass
207+
208+
def reprint(msg):
209+
sys.stdout.write("\r" + msg )
210+
211+
212+
def urlencode( val):
213+
if isinstance(val, unicode):
214+
return urllib.quote(str(val), safe='/:?=')
215+
return urllib.quote(val, safe='/:?=')
216+
217+
def GetUrlContent( url):
218+
request = urllib2.Request(urlencode(url))
219+
response = urllib2.urlopen(request)
220+
page = response.read()
221+
logl(page)
222+
encoding = GetEncoding(page)
223+
return page.decode(encoding)
224+
225+
def get_header():
226+
return {
227+
'User-Agent': random.choice(USER_AGENTS),
228+
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
229+
'Accept-Language': 'en-US,en;q=0.5',
230+
'Connection': 'keep-alive',
231+
'Accept-Encoding': 'gzip, deflate',
232+
}
233+
234+
TIMEOUT = 5
235+
def GetUrlContent2(url):
236+
r = requests.get(url=url, headers=get_header(), timeout=TIMEOUT)
237+
r.encoding = chardet.detect(r.content)['encoding']
238+
if not r.ok:
239+
#raise ConnectionError
240+
return "#ConnectionError"
241+
else:
242+
return r.text

0 commit comments

Comments
 (0)