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)
输出结果如下所示: