123456789101112131415161718192021222324252627282930313233343536 |
- 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
- }
|