概述
Go语言中的DNS查询API的客户端库。
最小的Go版本是1.17。
安装
该库以Go模块的形式发布
go get github.com/whois-api-llc/dns-lookup-go
实例
这里有完整的API文档
你可以在example 目录中找到所有的例子。
创建一个新的客户端
要开始提出请求,你需要API密钥。 你可以在whoisxmlapi.com的个人资料页面上找到它。 使用API密钥你可以创建客户端。
大多数用户使用NewBasicClient 功能就可以了。
client := dnslookupapi.NewBasicClient(apiKey)
如果你想设置自定义http.Client 来使用代理,那么你可以使用NewClient 函数:
transport := &http.Transport{Proxy: http.ProxyURL(proxyUrl)}
client := dnslookupapi.NewClient(apiKey, dnslookupapi.ClientParams{
HTTPClient: &http.Client{
Transport: transport,
Timeout: 20 * time.Second,
},
})
提出基本请求
DNS查询API让你从域名的A记录以及域名的邮件服务器(MX记录)、名称服务器(NS记录)、SPF(TXT记录)等记录中获得结构清晰的域名对应的IP地址:
// Make request to get all parsed DNS records for the domain name
dnsLookupResp, resp, err := client.Get(ctx, "whoisxmlapi.com")
if err != nil {
log.Fatal(err)
}
for _, record := range dnsLookupResp.DNSRecords.A {
log.Println(record.Name)
log.Println(record.Address)
}
// Make request to get raw DNS Lookup API data
resp, err := client.GetRaw(context.Background(), "whoisxmlapi.com")
if err != nil {
log.Fatal(err)
}
log.Println(string(resp.Body))```