代码拉取完成,页面将自动刷新
package main
import (
"context"
"log"
"net"
"strings"
"time"
)
type dnsSmartClient struct {
dialer *net.Dialer
}
func newDnsSmartClient() *dnsSmartClient {
return &dnsSmartClient{
dialer: &net.Dialer{
Timeout: 3 * time.Second,
KeepAlive: 30 * time.Second,
DualStack: true,
},
}
}
func (c *dnsSmartClient) Dial(ctx context.Context, network, address string) (conn net.Conn, err error) {
// net.dns1 might be ipv6, Issue https://github.com/openatx/atx-agent/issues/39
dns1 := getProperty("net.dns1")
if dns1 == "" || strings.Contains(dns1, ":") {
// 国内DNS列表: https://www.zhihu.com/question/32229915
dns1 = "114.114.114.114"
}
log.Println("dns resolve", dns1)
return c.dialer.DialContext(ctx, "udp", dns1+":53")
}
func init() {
net.DefaultResolver = &net.Resolver{
PreferGo: true,
Dial: newDnsSmartClient().Dial,
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。