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
网友评论