python实现DNS正向查询、反向查询的例子

时间:2022-10-29 07:18:55 

1.DNS查询过程:

以查询 www.baidu.com为例

(1)电脑向本地域名服务器发送解析www.baidu.com的请求
(2)本地域名服务器收到请求后,先查询本地的缓存,如果找到直接返回查询结果,如果没有该记录,本地域名服务器把www.baidu.com的请求发送给根域名服务器
(3)根域名服务器收到请求后,把.com域的服务器IP地址返回给本地域名服务器
(4)本地域名服务器连接.com服务器,向其请求解析域名www.baidu.com, .com服务器把baidu.com服务器的IP地址返回给本地DNS服务器
(5)本地DNS服务器向baidu.com服务器发送解析域名请求,baidu.com服务器将www.baidu.com的IP地址返回给本地DNS服务器
(6)本地DNS服务器把www.baidu.com的IP地址返回给电脑。

2.域名和IP地址的对应关系:

一个域名可以对应多个IP地址,但在同一时刻,一个域名只能有一个IP地址,一个IP地址可以对应多个域名。

3.查询DNS

Python可以实现DNS的正向和反向查询。下面是正向查询的代码:


#!/usr/bin/env python
import sys,socket
result=socket.getaddrinfo(sys,argv[1],None)
print result[0][4]

因为一个域名可以有多个IP地址,所以上述程序两次运行的结果可能会不同。

运行程序 :

./test.py www.baidu.com


结果为 :

(‘111.13.100.91',80)

反向查询:


#!/usr/bin/env python
import sys,socket
try:
 result=socket.gethostbyaddr(sys.argv[1])
 print "hostname is "+result[0]
except socket.herror,e:
 print "can't look up"


运行程序

./test2  127.0.0.1


结果为:

hostname is localhost

标签:python,DNS,正向查询,反向查询
0
投稿

猜你喜欢

  • 浅谈Python2获取中文文件名的编码问题

    2021-08-11 08:18:45
  • Django框架ORM操作数据库不生效问题示例解决方法

    2024-01-23 17:38:34
  • python使用pandas处理excel文件转为csv文件的方法示例

    2021-09-13 07:15:52
  • 删除sqlserver数据库日志和没有日志的数据库恢复办法

    2024-01-21 23:20:55
  • Python读写zip压缩文件的方法

    2021-10-08 02:28:11
  • Python3 requests模块如何模仿浏览器及代理

    2023-04-05 06:50:44
  • [JS]用 或 || 来兼容FireFox

    2013-06-26 14:50:47
  • Python参数解析器configparser简介

    2021-04-22 02:23:31
  • Pycharm插件(Grep Console)自定义规则输出颜色日志的方法

    2023-04-21 19:20:50
  • SQL Server中TRUNCATE事务回滚操作方法

    2024-01-20 14:43:23
  • ASP获取ACCESS数据库表名及结构的代码

    2011-04-15 10:50:00
  • Oracle 分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法

    2009-11-05 21:45:00
  • PyQT5 QTableView显示绑定数据的实例详解

    2023-09-09 19:40:40
  • apache配置虚拟主机的方法详解

    2023-06-18 09:05:29
  • SQLServer触发器调用JavaWeb接口的过程详解

    2024-01-17 12:08:45
  • django admin组件使用方法详解

    2021-05-28 19:59:53
  • Python标准库之zipfile和tarfile模块的使用

    2022-06-08 04:00:11
  • python 2.7.13 安装配置方法图文教程

    2023-11-13 11:54:37
  • Python Selenium异常处理的实例分析

    2021-01-12 17:13:06
  • Flask框架模板继承实现方法分析

    2021-02-20 04:09:52
  • asp之家 网络编程 m.aspxhome.com