本来是要写个程序用的,没写完不写了,这一部分就贴出来吧
验证域名和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 '完毕' #弹窗完成
|