#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2016/10/13 10:30
# @Author : Beam
# @Site : 实现查询域名的A记录
# @File : demo_dns.py
# @Software: PyCharm
import dns.resolver
def getArember(domain):
"""
仅查询二级域名,顶级域名则出错
:param domain:
:return:打印该域名下的所有A记录
"""
A = dns.resolver.query(domain,'A') #指定查询A记录
print '-----------------------A记录-----------------------'
for i in A.response.answer: #通过response.answer方法获取查询回应的信息
for j in i:
print j
print '-----------------------分割线-----------------------'
def getMXrember(domain):
"""
仅限输入一级域名(顶级域名),否则出错
:param domain:
:return:打印该域名下的所有MX记录
"""
MX = dns.resolver.query(domain,'MX') #指定查询MX记录
print '-----------------------MX记录-----------------------'
for i in MX: #遍历回应结果,输出MX记录的preference以及exchanger信息
print "MX preference =", i.preference,"MX exchanger =",i.exchange
print '-----------------------分割线-----------------------'
def getNsrember(domain):
"""
仅限输入一级域名(顶级域名),否则出错
:param domain:
:return: 打印该域名的NS记录值
"""
ns = dns.resolver.query(domain,'NS')
print '-----------------------NS记录-----------------------'
for i in ns.response.answer:
for j in i.items:
print j.to_text(),
print ''
print '-----------------------分割线-----------------------'
def getCnamerember(domain):
"""
仅限输入二级域名,否则出错
:param domain:
:return: 打印该域名的cname记录值
"""
cname = dns.resolver.query(domain,'CNAME')
print '-----------------------CNAME记录-----------------------'
for i in cname.response.answer:
for j in i.items:
print j.to_text()
print '-----------------------分割线-----------------------'
print '查询顶级域名输出MX、NS记录,查询耳机域名输出A、CNAME记录'
domain = raw_input('Please input an domain:')
if len(domain.strip().split('.')) == 2:
getMXrember(domain)
getNsrember(domain)
else:
getArember(domain)
getCnamerember(domain)
Python 下dns查询A、MX、NS、CNAME记录
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 原文发表于:DNS A CNAME MX PTR 等记录有什么区别 在之前的文章中,我们了解了什么是 DNS以及D...