Files
dns-resolver/main.go
T

51 lines
982 B
Go

package main
import (
"fmt"
"github.com/andwati/dns-resolver/internal/dns"
"github.com/andwati/dns-resolver/internal/network"
"log"
)
func main() {
domain := "dns.google.com"
header := dns.DNSHeader{
ID: dns.GenerateRandomID(),
Flags: 0x0100,
QDCount: 1,
}
question := dns.DNSQuestion{
QName: domain,
QType: dns.QTypeA,
QClass: dns.QClassIN,
}
message := dns.DNSMessage{
Header: header,
Question: question,
}
serializedMessage := message.Serialize()
response, err := network.SendDNSQuery(serializedMessage, network.DefaultServer)
if err != nil {
log.Fatalf("Error sending DNS query: %s", err)
}
fmt.Printf("DNS Response: %x\n", response)
answers, err := dns.ParseResponse(response)
if err != nil {
log.Fatalf("Error parsing response: %s", err)
}
for _, answer := range answers {
fmt.Printf("Name: %s, Type: %d, Class: %d, TTL: %d, Data: %s\n",
answer.Name, answer.Type, answer.Class, answer.TTL, answer.Data)
}
}