使用golang的net包进行域名解析过程分析
背景: 在实际的互联网使用过程中,大家熟知的是使用域名来直接访问一个服务,但随着互联网业务架构的不断优化,可能对用用户来说访问一个域名获取到相关的资源是很简单的一步,但其实对于互联网整个请求过程其实是做了很多次调用,那最开始的一步就是dns解析。当然在linux环境下,用来做dns解析的工具有很多,比如 dig 和 nslookup 之类的,但是通常对于复杂问题的排查直接去机器上去很显然是不太现实的,因此打算使用golang的接口来封装域名解析服务,来提供后期的操作. 1. net包的使用 和dns相关结构体方法 # nameserver结构体 type NS struct { Host string } # srv记录 指定该域名由哪个DNS服务器来进行解析 type SRV struct { Target string Port uint16 Priority uint16 Weight uint16 } # dns正向解析(域名解析到cname或者实际的ip地址) ## 仅返回指定域名name的cname地址 func LookupCNAME(name string) (cname string, err error) ## 直接返回域名解析到地址. func LookupHost(host string) (addrs []string, err error) ##