本来是要写个程序用的,没写完不写了,这一部分就贴出来吧
验证域名和IP
1
2
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
|
class JianKong(): '''查询IDC信息,封ip和过白名单''' def __init__( self ): pass @classmethod def ip_verify( cls , str ): '验证IP地址规范' pattern = re. compile ( '(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])' ) s = pattern.findall( str ) if len (s)> 0 : ip = s[ 0 ][ 0 ] + '.' + s[ 0 ][ 1 ] + '.' + s[ 0 ][ 2 ] + '.' + s[ 0 ][ 3 ] return ip else : print 'IP格式不正确' #弹窗提醒 return '' @classmethod def domain_verify( cls ,domainStr): '验证域名规范,返回合法域名列表' domainList = [] file = open ( 'c:\domain.txt' , 'r' ) domainType = file .readlines() #去重 domainType = list ( set (domainType)) #print domainType file .close() #file=['com','ac','com.cn','net'+''] for line in domainType: #文件中动态读取每个顶级域名进行匹配 line = line.strip() pattern = re. compile ( '([a-z0-9][a-z0-9\-]*?\.' + line + ')(?:\s|$)+' ,re.S) #例如[a-z0-9][a-z0-9\-]*?\.com.cn(?:\s|$)+ 中(?:\s|$)表示域名后缀后面必须是空白符或者字符结束(?:)表示括号不用于分组功能 #防止.com.cn先匹配到.com即停止匹配导致错误,或者匹配到.comc多了字符 result = pattern.findall(domainStr) if len (result)> 0 : #正确结果添加到返回列表 domainList = domainList + result #去重 domainList = list ( set (domainList)) newList = [] for d in domainList: if d not in domainType and d + '\n' not in domainType: newList.append(d) return newList @classmethod def getDomainType( cls ): '从工信部网站获取所有合法域名后缀' file = open ( 'c:/domain.txt' , 'w' ) p = re. compile ( 'class=\"by2\">\.(.*?)\ </td>' , re.S) for i in range ( 1 , 23 ): data = 'domainName=&domainBlur=0&page.pageSize=20&pageNo=' + str (i) + '&jumpPageNo=' + str (i) header = { 'Host' : 'www.miitbeian.gov.cn' , 'Origin' : 'http://www.miitbeian.gov.cn' , 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 UBrowser/5.5.6125.14 Safari/537.36' , 'Referer' : 'http://www.miitbeian.gov.cn/basecode/query/queryDomain.action;jsessionid=HSTRWpLZbR0cX4vFkDpnpbNBYyRl4GwW1fxpyhdyc0fcfhkvJTBV!1139295987' } url = 'http://www.miitbeian.gov.cn/basecode/query/queryDomain.action;jsessionid=HSTRWpLZbR0cX4vFkDpnpbNBYyRl4GwW1fxpyhdyc0fcfhkvJTBV!1139295987' request = urllib2.Request(url,data,header) response = urllib2.urlopen(request) recv = response.read() s = p.findall(recv) #print s #去重 s = list ( set (s)) for y in s: file .write(y + '\n' ) file .flush() #print str(i)+' '+y file .close() print '完毕' #弹窗完成 |