网络应用(5):DNS使用 | dig | host | nslookup | whois

dns,domain name system,域名系统,把域名转化成ip的系统。dns就好比数据库,通过对它的查询,能给url找到对应的ip。

我重点介绍几个工具的使用,这些工具都能把域名转换成ip,都使用了dns。

(1)dig

dig的简单使用是这样:

dig baidu.com

下面是这个命令的输出以及注解:
dig解释1
dig解释2

上面的截图显示小程使用的dns服务器是10.255.107.7(区域网的;默认端口53),这个dns服务器在哪里设置呢?小程是mac机,在网络设置里面,可以设置,看截图:
dns的设置1
dns的设置2

从截图可见,既可以设置内网的dns服务器,也可以直接设置成公网的dns服务器,比如114.xx或8.8.8.8等。

在使用dig时,也可以直接指定使用哪个dns服务器进行查询,比如这样:

dig @114.114.114.114 baidu.com

查询结果如下:
dig指定dns查询

如果只是想简单地看到域名对应的ip,可以这样使用dig:

dig +short baidu.com

显示结果如下:
dig+short

dig可以把域名转成ip,也可以把某些ip转出域名:

dig -x ip

比如下图:
dig-x

如果某些ip无法转出域名,而且使用了+short参数,那就会看不到返回信息。

(2)host

host命令使用简单:

host baidu.com

host也可以把某些ip转换成域名,但只是某些。

host使用

(3)nslookup

nslookup是一个交互的命令,输入域名,输出ip,比如:
nslookup使用

(4)whois

whois显示域名的注册信息,比如:
whois使用


以上是现成工具的使用,我可是程序员啊,代码在哪里?这里再介绍一下代码的实现。

比如,用python的dnspython,代码实现域名解析。

先安装dnspython:

pip install dnspython

然后实现,代码与执行效果如下:
dnspython的代码实现

再比如,使用c的getaddrinfo函数,也可以实现把域名转换成ip(包括ipv4跟ipv6),这里不细说了。


helloworld

posted on 2019-05-16 13:00 广州小程 阅读() 评论() 编辑 收藏

版权声明:本文为freeself原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/freeself/p/10874975.html