Python之DNS

Python017

Python之DNS,第1张

dnspython( http://www.dnspython.org/ ) 是Python实现的一个DNS工具包,它支持几乎所有的记录类型,可以用于查询、传输并动态更新ZONE信息,同时支持TSIG(事务签名)验证消息和EDNS0(扩展DNS).在系统方面,我们可以利用其查询功能来实现DNS服务监控以及解析结果的校验,可以代替nslookup及dig等工具,轻松做到与现有平台的整合

安装

import sys

import socket

import dns.resolver

print 'Argument List:', str(sys.argv)

site = sys.argv[1]

dns_server = sys.argv[2]

# Basic CNAME query the host's DNS

for rdata in dns.resolver.query(site, 'CNAME') :

print rdata.target

# Basic A query the host's DNS

for rdata in dns.resolver.query(site, 'A') :

print rdata.address

###下边是制定dns解析的服务器设置

# Setting an specific DNS Server

resolver = dns.resolver.Resolver()

resolver.nameservers = [socket.gethostbyname(dns_server)]

# Basic CNAME query with the specific DNS server

answer = resolver.query(site, 'CNAME')

for rdata in answer :

print rdata.target

# Basic A query with the specific DNS server

answer = resolver.query(site, 'A')

for rdata in answer :

print rdata.address

To run:(命令执行)

python dnsdig.py www.youtube.com 8.8.8.8

[root@bogon dns]# vim NS.py

import dns.resolver

domain = 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()

测试:

[root@bogon dns]# python NS.py

Please input an domain: baidu.com #智能输入一级域名

ns4.baidu.com.

ns3.baidu.com.

ns2.baidu.com.

dns.baidu.com.

ns7.baidu.com.

[root@bogon dns]#