乐趣区

关于go:go-hack十dns服务器构建

go 网络安全代码地址

package main

import (
    "log"
    "net"

    "github.com/miekg/dns"
)

// 构建 a 记录查问的 dns 服务器
// dig @localhost baidu.com 测试  systemctl stop systemd-resolved.service 进行原有的 dns 服务,解决 53 端口占用问题
func main() {dns.HandleFunc(".", func(w dns.ResponseWriter, req *dns.Msg) { // req 申请自身
        var resp dns.Msg
        resp.SetReply(req)

        for _, q := range req.Question {
            a := dns.A{
                Hdr: dns.RR_Header{
                    Name:   q.Name,
                    Rrtype: dns.TypeA,
                    Class:  dns.ClassINET,
                    Ttl:    0,
                },
                A: net.ParseIP("127.0.0.1").To4(),}
            resp.Answer = append(resp.Answer, &a)
        }
        w.WriteMsg(&resp)
    })
    log.Fatal(dns.ListenAndServe(":53", "udp", nil))
}
退出移动版