美文网首页Android开发经验谈
网络应用(5):DNS使用 | dig | host | nsl

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

作者: 广州小程 | 来源:发表于2019-05-16 12:57 被阅读6次

    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

    相关文章

      网友评论

        本文标题:网络应用(5):DNS使用 | dig | host | nsl

        本文链接:https://www.haomeiwen.com/subject/litiaqtx.html