diff --git a/internal/network/client.go b/internal/network/client.go index 1ae2e9d..1c43c0d 100644 --- a/internal/network/client.go +++ b/internal/network/client.go @@ -1 +1,36 @@ package network + +import ( + "net" + "time" +) + +func SendDNSQuery(query []byte, server string) ([]byte, error) { + conn, err := net.Dial("udp", server) + if err != nil { + return nil, err + } + defer func(conn net.Conn) { + err := conn.Close() + if err != nil { + + } + }(conn) + + err = conn.SetDeadline(time.Now().Add(DefaultTimeout)) + if err != nil { + return nil, err + } + + if _, err := conn.Write(query); err != nil { + return nil, err + } + + response := make([]byte, 512) + n, err := conn.Read(response) + if err != nil { + return nil, err + } + + return response[:n], nil +} diff --git a/internal/network/config.go b/internal/network/config.go index 1ae2e9d..db23296 100644 --- a/internal/network/config.go +++ b/internal/network/config.go @@ -1 +1,6 @@ package network + +import "time" + +const DefaultServer = "8.8.8.8:53" +const DefaultTimeout = 5 * time.Second