feat: 添加自定义 DNS 解析器

This commit is contained in:
2025-09-13 02:05:00 +08:00
parent 7af8e540db
commit 9834a55e5d
7 changed files with 175 additions and 17 deletions

View File

@@ -8,17 +8,17 @@ import (
"net/http"
"regexp"
"time"
"github.com/komari-monitor/komari-agent/dnsresolver"
)
var (
// 创建适用于IPv4和IPv6的HTTP客户端
ipv4HTTPClient = &http.Client{
Transport: &http.Transport{
DialContext: func(ctx context.Context, network, addr string) (net.Conn, error) {
d := net.Dialer{
Timeout: 15 * time.Second,
KeepAlive: 30 * time.Second,
}
return d.DialContext(ctx, "tcp4", addr) // 锁v4防止出现问题
dialer := dnsresolver.GetNetDialer(15 * time.Second)
return dialer.DialContext(ctx, "tcp4", addr) // 锁v4防止出现问题
},
MaxIdleConns: 10,
IdleConnTimeout: 30 * time.Second,
@@ -30,11 +30,8 @@ var (
ipv6HTTPClient = &http.Client{
Transport: &http.Transport{
DialContext: func(ctx context.Context, network, addr string) (net.Conn, error) {
d := net.Dialer{
Timeout: 15 * time.Second,
KeepAlive: 30 * time.Second,
}
return d.DialContext(ctx, "tcp6", addr) // 锁v6防止出现问题
dialer := dnsresolver.GetNetDialer(15 * time.Second)
return dialer.DialContext(ctx, "tcp6", addr) // 锁v6防止出现问题
},
MaxIdleConns: 10,
IdleConnTimeout: 30 * time.Second,