时间:2021-05-22
一、什么是域名系统
DNS 计算机域名系统 (DNS) 是由解析器以及域名服务器组成的。当我们在上网的时候,通常输入的是网址,其实这就是一个域名,而我们计算机网络上的计算机彼此之间只能用IP地址才能相互识别。再如,我们去一WEB服务器中请求一WEB页面,我们可以在浏览器中输入网址或者是相应的IP地址,例如我们要上新浪网,我们可以在IE的地址栏中输入网址,也可输入IP地址,但是这样子的IP地址我们记不住或说是很难记住,所以有了域名的说法,这样的域名会让我们容易的记住。
名称
含义
特性
域名服务器
保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。
域名必须对应一个IP地址,而IP地址不一定只对应一个域名,采用类似目录树的等级结构。
域名解析服务器
域名与IP地址之间的转换工作
域名解析过程中的查询顺序为:本地缓存记录、区域记录、转发域名服务器、根域名服务器。
二、访问DNS的方法一:使用socket模块
1、DNS查询
以查询patible."""
if re.search('^/d+/./d+/./d+/./d+$', query):
octets = query.split('.')
octets.reverse()
return '.'.join(octets) + '.IN-ADDR.ARPA'
return None
def formatline(index, typename, descr, data):
retval = "%-2s %-5s" % (index, typename)
if isinstance(data,list):
return retval
else:
data = data.replace("/n", "/n ")
if descr != None and len(descr):
retval += " %-12s" % (descr + ":")
return retval + " " + data
DNS.DiscoverNameServers()
query1=raw_input('输入网站:')
queries = [(query1, DNS.Type.ANY)]
donequeries = []
descriptions = {'A': 'IP address',
'TXT': 'Data',
'PTR': 'Host name',
'CNAME': 'Alias for',
'NS': 'Name server'}
while len(queries):
(query, qtype) = queries.pop(0)
if query in donequeries:
# Don't look up the same thing twice
continue
donequeries.append(query)
print "-" * 77
print "Results for %s (lookup type %s)" %(query, DNS.Type.typestr(qtype))
print
rev = getreverse(query)
if rev:
print "IP address given; doing reverse lookup using", rev
query = rev
answers = nslookup(query, qtype, verbose = 0)
if not len(answers):
print "Not found."
count = 0
for answer in answers:
count += 1
if answer['typename'] == 'MX':
print formatline(count, answer['typename'],
'Mail server',
"%s, priority %d" % (answer['data'][1],
answer['data'][0]))
queries.append((answer['data'][1], DNS.Type.A))
elif answer['typename'] == 'SOA':
data = "/n" + "/n".join([str(x) for x in answer['data']])
##print data
print formatline(count, 'SOA', 'Start of authority', data)
elif answer['typename'] in descriptions:
##print answer['data']
print formatline(count, answer['typename'],
descriptions[answer['typename']], answer['data'])
else:
print formatline(count, answer['typename'], None,
str(answer['data']))
if answer['typename'] in ['CNAME', 'PTR']:
queries.append((answer['data'], DNS.Type.ANY))
if answer['typename'] == 'NS':
queries.append((answer['data'], DNS.Type.A))
本人在运行时,总是报错,没找到原因,望高手指点。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
internet域名系统的功能是通过请求及回答获取主机和网络相关的信息。 域名系统(DomainNameSystem缩写DNS,DomainName被译为域名
域名系统的功能是通过请求及回答获取主机和网络相关的信息。 域名系统(DomainNameSystem缩写DNS,DomainName被译为域名)是因特网的一项
网络dns是域名系统,是建立在数据库上的分层命名系统,在万维网上,dns把ip和域名相互映射,并且映射成一个分布式数据库,可以让用户去访问互联网。域名系统(DN
本文实例讲述了python实现域名系统(DNS)正向查询的方法。分享给大家供大家参考,具体如下:域名系统(DNS)是一个分布式的数据库,主要是用来把主机名换成I
使用域名系统的原因是:便于记忆和沟通;域名系统能够使人更方便的访问互联网,而不用去记忆被机器直接读取的IP数串。域名系统是互联网的一项服务。 域名系统作为将域