package resolver import ( "encoding/json" "io" "net/http" "rinne.dev/doh-resolver/app/model" "rinne.dev/doh-resolver/pkg/config" ) // Resolve 查找域名对应的 IP func Resolve(domain string) (string, error) { // 请求 DOH 服务器 resp, err := http.Get(config.GetString("resolver") + "?name=" + domain) if err != nil { return "", err } resBody, err := io.ReadAll(resp.Body) if err != nil { return "", err } // 解析响应 var response model.DOHResponse err = json.Unmarshal(resBody, &response) if err != nil { return "", err } // 结果取到最后一个 ans := "" for _, answer := range response.Answer { ans = answer.Data } return ans, nil }