- Python安全攻防:渗透测试实战指南
- 吴涛 方嘉明 吴荣德 徐焱
- 482字
- 2021-03-27 03:00:26
4.1.1 DNS解析
DNS(Domain Name System,域名系统)是一种分布式网络目录服务,主要用于域名与IP地址的相互转换,能够使用户更方便地访问互联网,而不用去记住一长串数字(能够被机器直接读取的IP)。就像拜访朋友要先知道别人家怎么走一样,当Internet上的一台主机要访问另外一台主机时,必须首先知道其地址,TCP/IP中的IP地址是由四段以“.”分开的数字组成,记起来总是不如名字那么方便,所以采用了域名系统来管理名字和IP的对应关系。本节将介绍如何通过Python脚本获取目标网站域名对应的IP地址,以及获取注册时间、注册人姓名、邮箱等信息。
1.IP查询
IP查询是通过当前所获取到的URL去查询对应IP地址的过程。可以应用Socket库函数中的gethostbyname()获取域名所对应的IP值。
例如,查询域名www.baidu.com所对应的IP值,代码如下:
>>> import socket >>> ip = socket.gethostbyname('www.baidu.com') >>> print(ip)
输出结果:
61.135.169.121
2.Whois查询
Whois是用来查询域名的IP以及所有者信息的传输协议。简单地说,Whois就是一个数据库,用来查询域名是否已经被注册,以及注册域名的详细信息(如域名所有人、域名注册商等)。Python中的模块python-whois可用于Whois的查询。
首先通过pip安装python-whois模块:
pip install python-whois
例如,通过Python自带的whois模块查询域名www.baidu.com的注册信息,代码如下:
>>> from whois import whois >>> data = whois('www.baidu.com') >>>print(data)
输出结果如下所示:
![](https://epubservercos.yuewen.com/DEF3B5/18123624101956106/epubprivate/OEBPS/Images/053-i.jpg?sign=1739520968-4YOp2741alheYWQW76pdflAS9ReSj2ry-0-805ba8f33800443d7f23968f08c477b8)
![](https://epubservercos.yuewen.com/DEF3B5/18123624101956106/epubprivate/OEBPS/Images/054-i.jpg?sign=1739520968-NH0BGwTlKa9nupshSqP9pI04fisVNH11-0-a3f57679fbd04645b578dda0cfdc7c71)