由于域名比 IP 地址更便于记忆,我们通常使用它来访问网络服务。网络应用客户端想要跟服务端通信,必须先向 DNS 服务器查询域名对应的 IP 地址。
举个例子,读者访问我的网站 fasionchan.com
时,浏览器需要先根据域名查询网站的 IP 地址,再和网站的 Web 服务器进行通信。
那么,如何通过编程实现域名查询呢?这是开发网络应用无法回避的问题。
我们知道,DNS 服务器和客户端之间使用 DNS 协议进行通信:客户端先向服务器发送 请求报文 ,服务器将查询结果封装成 应答报文 ,回复客户端。DNS 可以使用 UDP 或 TCP 作为传输层协议,通信端口号为 53 。