python笔记系列:DNS处理模块dnspython
2018-04-04 09:25
513 查看
DNS处理模块dnspython
wget http://www.dnspython.org/kits/1.9.4/dnspython-1.9.4.tar.gztar -zxvf dnspython-1.9.4.tar.gzcd dnspython-1.9.4.tar.gzpython setup.py install
dnspython提供的DNS解析器类:resolver,其query方法可实现域名查询,方法定义如下:query(self,qname,rdtype=1,rdclass=1,tcp=False,source=None,raise_on_no_answer=True,source_port=0)qname 为域名,rdtype指定RR资源的类型,常用的如下:A 主机名换成IPMX 邮件交换记录,定义邮件服务器的域名CNAME 别名记录,实现域名间的映射NS 标记区域的域名服务器及授权子域PTR 反向解析,与A记录相反SOA SOA标记,一个起始授权区的定义rdclass 指定网络类型,可选IN(默认)、CH、HStcp 是否启用TCP协议,默认False(不启用)source 源地址,默认查询设备IPsource_port 源地址端口,默认0raise_on_no_answer 指定查询无应答时是否触发异常,默认True
A记录查询#!/usr/bin/env pythonimport dns.resolverdomain = raw_input('Please input an domain: ')A = dns.resolver.query(domain, 'A')for i in A.response.answer: for j in i.items: print j.address
MX记录查询(注意输入域名不包括www)#!/usr/bin/env pythonimport dns.resolverdomain = raw_input('Please input an domain: ')MX = dns.resolver.query(domain, 'MX')for i in MX: print 'MX preference =', i.preference, 'mail exchanger =', i.exchange
NS记录查询#!/usr/bin/env pythonimport dns.resolverdomain = raw_input('Please input an domain: ')ns = dns.resolver.query(domain, 'NS')for i in ns.response.answer: for j in i.items: print j.to_text()
CNAME记录查询#!/usr/bin/env pythonimport dns.resolverdomain = raw_input('Please input an domain: ')cname = dns.resolver.query(domain, 'CNAME')for i in cname.response.answer: for j in i.items: print j.to_text()
DNS域名轮询业务监控#!/usr/bin/python# coding=UTF-8 #加入该行,否则因中文注释的存在将报错“'\xe5' in file”import dns.resolverimport osimport httplibiplist=[] #定义域名IP列表变量appdomain="www.google.com.hk" #定义业务域名def get_iplist(domain=""): #域名解析函数,解析成功IP将追加到iplist try: A = dns.resolver.query(domain, 'A') #解析A记录类型 except Exception,e: print "dns resolver error:"+str(e) return for i in A.response.answer: for j in i.items: iplist.append(j.address) #追加到iplist return Truedef checkip(ip): checkurl=ip+":80" getcontent="" httplib.socket.setdefaulttimeout(5) #定义http连接超时时间(5秒) conn=httplib.HTTPConnection(checkurl) #创建http连接对象 try: conn.request("GET", "/",headers = {"Host": appdomain}) #发起URL请求,添加host主机头 r=conn.getresponse() getcontent =r.read(15) #获取URL页面前15个字符,以便做可用性校验 finally: if getcontent=="<!doctype html>": #监控URL页的内容一般是事先定义好,比如“HTTP200”等 print ip+" [OK]" else: print ip+" [Error]" #此处可放告警程序,可以是邮件、短信通知if __name__=="__main__": if get_iplist(appdomain) and len(iplist)>0: #条件:域名解析正确且至少要返回一个IP for ip in iplist: checkip(ip) else: print "dns resolver error."
DNS处理模块dnspython
wget http://www.dnspython.org/kits/1.9.4/dnspython-1.9.4.tar.gztar -zxvf dnspython-1.9.4.tar.gzcd dnspython-1.9.4.tar.gzpython setup.py install
dnspython提供的DNS解析器类:resolver,其query方法可实现域名查询,方法定义如下:query(self,qname,rdtype=1,rdclass=1,tcp=False,source=None,raise_on_no_answer=True,source_port=0)qname 为域名,rdtype指定RR资源的类型,常用的如下:A 主机名换成IPMX 邮件交换记录,定义邮件服务器的域名CNAME 别名记录,实现域名间的映射NS 标记区域的域名服务器及授权子域PTR 反向解析,与A记录相反SOA SOA标记,一个起始授权区的定义rdclass 指定网络类型,可选IN(默认)、CH、HStcp 是否启用TCP协议,默认False(不启用)source 源地址,默认查询设备IPsource_port 源地址端口,默认0raise_on_no_answer 指定查询无应答时是否触发异常,默认True
A记录查询#!/usr/bin/env pythonimport dns.resolverdomain = raw_input('Please input an domain: ')A = dns.resolver.query(domain, 'A')for i in A.response.answer: for j in i.items: print j.address
MX记录查询(注意输入域名不包括www)#!/usr/bin/env pythonimport dns.resolverdomain = raw_input('Please input an domain: ')MX = dns.resolver.query(domain, 'MX')for i in MX: print 'MX preference =', i.preference, 'mail exchanger =', i.exchange
NS记录查询#!/usr/bin/env pythonimport dns.resolverdomain = raw_input('Please input an domain: ')ns = dns.resolver.query(domain, 'NS')for i in ns.response.answer: for j in i.items: print j.to_text()
CNAME记录查询#!/usr/bin/env pythonimport dns.resolverdomain = raw_input('Please input an domain: ')cname = dns.resolver.query(domain, 'CNAME')for i in cname.response.answer: for j in i.items: print j.to_text()
DNS域名轮询业务监控#!/usr/bin/python# coding=UTF-8 #加入该行,否则因中文注释的存在将报错“'\xe5' in file”import dns.resolverimport osimport httplibiplist=[] #定义域名IP列表变量appdomain="www.google.com.hk" #定义业务域名def get_iplist(domain=""): #域名解析函数,解析成功IP将追加到iplist try: A = dns.resolver.query(domain, 'A') #解析A记录类型 except Exception,e: print "dns resolver error:"+str(e) return for i in A.response.answer: for j in i.items: iplist.append(j.address) #追加到iplist return Truedef checkip(ip): checkurl=ip+":80" getcontent="" httplib.socket.setdefaulttimeout(5) #定义http连接超时时间(5秒) conn=httplib.HTTPConnection(checkurl) #创建http连接对象 try: conn.request("GET", "/",headers = {"Host": appdomain}) #发起URL请求,添加host主机头 r=conn.getresponse() getcontent =r.read(15) #获取URL页面前15个字符,以便做可用性校验 finally: if getcontent=="<!doctype html>": #监控URL页的内容一般是事先定义好,比如“HTTP200”等 print ip+" [OK]" else: print ip+" [Error]" #此处可放告警程序,可以是邮件、短信通知if __name__=="__main__": if get_iplist(appdomain) and len(iplist)>0: #条件:域名解析正确且至少要返回一个IP for ip in iplist: checkip(ip) else: print "dns resolver error."
wget http://www.dnspython.org/kits/1.9.4/dnspython-1.9.4.tar.gztar -zxvf dnspython-1.9.4.tar.gzcd dnspython-1.9.4.tar.gzpython setup.py install
dnspython提供的DNS解析器类:resolver,其query方法可实现域名查询,方法定义如下:query(self,qname,rdtype=1,rdclass=1,tcp=False,source=None,raise_on_no_answer=True,source_port=0)qname 为域名,rdtype指定RR资源的类型,常用的如下:A 主机名换成IPMX 邮件交换记录,定义邮件服务器的域名CNAME 别名记录,实现域名间的映射NS 标记区域的域名服务器及授权子域PTR 反向解析,与A记录相反SOA SOA标记,一个起始授权区的定义rdclass 指定网络类型,可选IN(默认)、CH、HStcp 是否启用TCP协议,默认False(不启用)source 源地址,默认查询设备IPsource_port 源地址端口,默认0raise_on_no_answer 指定查询无应答时是否触发异常,默认True
A记录查询#!/usr/bin/env pythonimport dns.resolverdomain = raw_input('Please input an domain: ')A = dns.resolver.query(domain, 'A')for i in A.response.answer: for j in i.items: print j.address
MX记录查询(注意输入域名不包括www)#!/usr/bin/env pythonimport dns.resolverdomain = raw_input('Please input an domain: ')MX = dns.resolver.query(domain, 'MX')for i in MX: print 'MX preference =', i.preference, 'mail exchanger =', i.exchange
NS记录查询#!/usr/bin/env pythonimport dns.resolverdomain = raw_input('Please input an domain: ')ns = dns.resolver.query(domain, 'NS')for i in ns.response.answer: for j in i.items: print j.to_text()
CNAME记录查询#!/usr/bin/env pythonimport dns.resolverdomain = raw_input('Please input an domain: ')cname = dns.resolver.query(domain, 'CNAME')for i in cname.response.answer: for j in i.items: print j.to_text()
DNS域名轮询业务监控#!/usr/bin/python# coding=UTF-8 #加入该行,否则因中文注释的存在将报错“'\xe5' in file”import dns.resolverimport osimport httplibiplist=[] #定义域名IP列表变量appdomain="www.google.com.hk" #定义业务域名def get_iplist(domain=""): #域名解析函数,解析成功IP将追加到iplist try: A = dns.resolver.query(domain, 'A') #解析A记录类型 except Exception,e: print "dns resolver error:"+str(e) return for i in A.response.answer: for j in i.items: iplist.append(j.address) #追加到iplist return Truedef checkip(ip): checkurl=ip+":80" getcontent="" httplib.socket.setdefaulttimeout(5) #定义http连接超时时间(5秒) conn=httplib.HTTPConnection(checkurl) #创建http连接对象 try: conn.request("GET", "/",headers = {"Host": appdomain}) #发起URL请求,添加host主机头 r=conn.getresponse() getcontent =r.read(15) #获取URL页面前15个字符,以便做可用性校验 finally: if getcontent=="<!doctype html>": #监控URL页的内容一般是事先定义好,比如“HTTP200”等 print ip+" [OK]" else: print ip+" [Error]" #此处可放告警程序,可以是邮件、短信通知if __name__=="__main__": if get_iplist(appdomain) and len(iplist)>0: #条件:域名解析正确且至少要返回一个IP for ip in iplist: checkip(ip) else: print "dns resolver error."
DNS处理模块dnspython
wget http://www.dnspython.org/kits/1.9.4/dnspython-1.9.4.tar.gztar -zxvf dnspython-1.9.4.tar.gzcd dnspython-1.9.4.tar.gzpython setup.py install
dnspython提供的DNS解析器类:resolver,其query方法可实现域名查询,方法定义如下:query(self,qname,rdtype=1,rdclass=1,tcp=False,source=None,raise_on_no_answer=True,source_port=0)qname 为域名,rdtype指定RR资源的类型,常用的如下:A 主机名换成IPMX 邮件交换记录,定义邮件服务器的域名CNAME 别名记录,实现域名间的映射NS 标记区域的域名服务器及授权子域PTR 反向解析,与A记录相反SOA SOA标记,一个起始授权区的定义rdclass 指定网络类型,可选IN(默认)、CH、HStcp 是否启用TCP协议,默认False(不启用)source 源地址,默认查询设备IPsource_port 源地址端口,默认0raise_on_no_answer 指定查询无应答时是否触发异常,默认True
A记录查询#!/usr/bin/env pythonimport dns.resolverdomain = raw_input('Please input an domain: ')A = dns.resolver.query(domain, 'A')for i in A.response.answer: for j in i.items: print j.address
MX记录查询(注意输入域名不包括www)#!/usr/bin/env pythonimport dns.resolverdomain = raw_input('Please input an domain: ')MX = dns.resolver.query(domain, 'MX')for i in MX: print 'MX preference =', i.preference, 'mail exchanger =', i.exchange
NS记录查询#!/usr/bin/env pythonimport dns.resolverdomain = raw_input('Please input an domain: ')ns = dns.resolver.query(domain, 'NS')for i in ns.response.answer: for j in i.items: print j.to_text()
CNAME记录查询#!/usr/bin/env pythonimport dns.resolverdomain = raw_input('Please input an domain: ')cname = dns.resolver.query(domain, 'CNAME')for i in cname.response.answer: for j in i.items: print j.to_text()
DNS域名轮询业务监控#!/usr/bin/python# coding=UTF-8 #加入该行,否则因中文注释的存在将报错“'\xe5' in file”import dns.resolverimport osimport httplibiplist=[] #定义域名IP列表变量appdomain="www.google.com.hk" #定义业务域名def get_iplist(domain=""): #域名解析函数,解析成功IP将追加到iplist try: A = dns.resolver.query(domain, 'A') #解析A记录类型 except Exception,e: print "dns resolver error:"+str(e) return for i in A.response.answer: for j in i.items: iplist.append(j.address) #追加到iplist return Truedef checkip(ip): checkurl=ip+":80" getcontent="" httplib.socket.setdefaulttimeout(5) #定义http连接超时时间(5秒) conn=httplib.HTTPConnection(checkurl) #创建http连接对象 try: conn.request("GET", "/",headers = {"Host": appdomain}) #发起URL请求,添加host主机头 r=conn.getresponse() getcontent =r.read(15) #获取URL页面前15个字符,以便做可用性校验 finally: if getcontent=="<!doctype html>": #监控URL页的内容一般是事先定义好,比如“HTTP200”等 print ip+" [OK]" else: print ip+" [Error]" #此处可放告警程序,可以是邮件、短信通知if __name__=="__main__": if get_iplist(appdomain) and len(iplist)>0: #条件:域名解析正确且至少要返回一个IP for ip in iplist: checkip(ip) else: print "dns resolver error."
相关文章推荐
- Python学习笔记-DNS处理模块dnspython
- Python学习笔记-DNS处理模块dnspython
- python笔记系列:IP地址处理模块IPy
- ogre 学习笔记系列(二)三大模块及事件处理
- python学习笔记系列----(四)模块
- Python DNS 处理模块 dnspython
- Python学习笔记-IP地址处理模块Ipy
- python -- DNS处理模块
- 数据处理_文件读取_PythonPickle模块(笔记)
- DNS处理模块dnspython之域名轮循业务监控
- dns处理模块dnspython
- dnspython模块处理dns信息
- DNS处理模块dnspython之详解模块域名解析方法
- python -- DNS处理模块dnspython
- Python DNS处理模块
- Python自动化运维笔记(二):Python中的IP地址处理模块IPy的使用
- [Python入门及进阶笔记]Python-基础-数字处理相关模块
- python中的数据包处理模块scapy调研笔记
- Python学习笔记-IP地址处理模块Ipy