From f1016027e95a463b241fc47dc282e7e4fe492adc Mon Sep 17 00:00:00 2001 From: sooraj-sky Date: Sat, 25 Feb 2023 19:38:44 +0530 Subject: [PATCH] added DNS --- packages/alerts/skydns.go | 29 +++++++++++++++++++++++++++++ packages/httpres/trace.go | 5 +++++ 2 files changed, 34 insertions(+) create mode 100644 packages/alerts/skydns.go diff --git a/packages/alerts/skydns.go b/packages/alerts/skydns.go new file mode 100644 index 0000000..3b14292 --- /dev/null +++ b/packages/alerts/skydns.go @@ -0,0 +1,29 @@ +package skydns + +import ( + "context" + "net" + "time" +) + +// Create a custom Resolver that uses a specific DNS server IP +func customResolver(dnsServer string) *net.Resolver { + return &net.Resolver{ + PreferGo: true, + Dial: func(ctx context.Context, network, address string) (net.Conn, error) { + dialer := net.Dialer{ + Timeout: 10 * time.Second, + Resolver: &net.Resolver{ + PreferGo: true, + Dial: func(ctx context.Context, network, address string) (net.Conn, error) { + return (&net.Dialer{ + Timeout: 10 * time.Second, + DualStack: true, + }).DialContext(ctx, network, dnsServer+":53") + }, + }, + } + return dialer.DialContext(ctx, network, address) + }, + } +} diff --git a/packages/httpres/trace.go b/packages/httpres/trace.go index c7874c3..17559b2 100644 --- a/packages/httpres/trace.go +++ b/packages/httpres/trace.go @@ -9,6 +9,7 @@ import ( "time" models "github.com/sooraj-sky/sky-meter/models" + skydns "github.com/sooraj-sky/sky-meter/packages/skydns" ) func GetHttpdata(url string, timeout time.Duration, SkipSsl bool) (httpdata []byte, httpstatuscode int, errs error) { @@ -57,6 +58,10 @@ func trace() (*httptrace.ClientTrace, *models.Debug) { d := &models.Debug{} t := &httptrace.ClientTrace{ + //DNS settings + dnsServer := "8.8.8.8" // Replace with your desired DNS server IP address + skydns.resolver := customResolver(dnsServer) + DNSStart: func(info httptrace.DNSStartInfo) { t := time.Now().UTC().String() //log.Println(t, "dns start")