dns,domain name system,域名系统,把域名转化成ip的系统。html
先来看几上工具的使用,这几个工具都能把域名转换成ip,都使用了dns。dns就比如数据库,经过对它的查询,能给url找到对应的ip。python
dig的简单使用是这样:数据库
dig baidu.com服务器
下面是这个命令的输出以及注解:网络
上面的截图显示小程使用的dns服务器是10.255.107.7(默认端口53),这个dns服务器在哪里设置呢?小程是mac机,在网络设置里面,能够设置,看截图:dom
从截图可见,既能够设置内网的dns服务器,也能够直接设置成公网的dns服务器,好比114.xx或8.8.8.8等。函数
在使用dig时,也能够直接指定使用哪一个dns服务器进行查询,好比这样:工具
dig @114.114.114.114 baidu.compost
查询结果以下:url
若是只是想简单地看到域名对应的ip,能够这样使用dig:
dig +short baidu.com
显示结果以下:
dig能够把域名转成ip,也能够把某些ip转出域名:
dig -x ip
好比下图:
若是某些ip没法转出域名,并且使用了+short参数,那就会看不到返回信息。
host命令使用简单:
host baidu.com
host也能够把某些ip转换成域名,但只是某些。
nslookup是一个交互的命令,输入域名,输出ip,好比:
whois显示域名的注册信息,好比:
以上是现成工具的使用,这里再介绍一下代码的实现。
好比,用python的dnspython,代码实现域名解析。
先安装dnspython:
pip install dnspython
而后实现,代码与执行效果以下:
再好比,使用c的getaddrinfo函数,也能够实现把域名转换成ip(包括ipv4跟ipv6),这里不细说了。
IOS客户端源码、API源码呈献给你们,完整的示例你们能够到AppStore下载安装“知音”。