您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Python实现获取域名所用服务器的真实IP

2026/2/3 21:50:41发布10次查看
本来是要写个程序用的,没写完不写了,这一部分就贴出来吧
验证域名和ip
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\>\.(.*?)\ ', 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 '完毕'#弹窗完成
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product