81 lines
1.7 KiB
Go
81 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/miekg/dns"
|
|
"net"
|
|
)
|
|
|
|
// 构建 A 记录的函数 IPV4
|
|
func handleARecord(q dns.Question, msg *dns.Msg) {
|
|
name := q.Name
|
|
targetIp := "192.235.111.111"
|
|
fmt.Printf("请求解析的域名:%s,解析的目标IP地址:%s\n", name, targetIp)
|
|
ip := net.ParseIP(targetIp)
|
|
rr := &dns.A{
|
|
Hdr: dns.RR_Header{
|
|
Name: name,
|
|
Rrtype: dns.TypeA,
|
|
Class: dns.ClassINET,
|
|
Ttl: 60,
|
|
},
|
|
A: ip,
|
|
}
|
|
msg.Answer = append(msg.Answer, rr)
|
|
}
|
|
|
|
//// 构建 A 记录的函数 IPV6
|
|
//func handleAAAARecord(q dns.Question, msg *dns.Msg) {
|
|
// ip := net.ParseIP("rsdw::8888")
|
|
// rr := &dns.AAAA{
|
|
// Hdr: dns.RR_Header{
|
|
// Name: q.Name,
|
|
// Rrtype: dns.TypeAAAA,
|
|
// Class: dns.ClassINET,
|
|
// Ttl: 60,
|
|
// },
|
|
// AAAA: ip,
|
|
// }
|
|
// msg.Answer = append(msg.Answer, rr)
|
|
//}
|
|
|
|
//func handleCNAMERecord(q dns.Question, msg *dns.Msg) {
|
|
// rr := &dns.CNAME{
|
|
// Hdr: dns.RR_Header{
|
|
// Name: q.Name,
|
|
// Rrtype: dns.TypeCNAME,
|
|
// Class: dns.ClassINET,
|
|
// Ttl: 60,
|
|
// },
|
|
// Target: "example.com.",
|
|
// }
|
|
// msg.Answer = append(msg.Answer, rr)
|
|
//}
|
|
//
|
|
//func handleMXRecord(q dns.Question, msg *dns.Msg) {
|
|
// rr := &dns.MX{
|
|
// Hdr: dns.RR_Header{
|
|
// Name: q.Name,
|
|
// Rrtype: dns.TypeMX,
|
|
// Class: dns.ClassINET,
|
|
// Ttl: 60,
|
|
// },
|
|
// Preference: 10,
|
|
// Mx: "mail.example.com.",
|
|
// }
|
|
// msg.Answer = append(msg.Answer, rr)
|
|
//}
|
|
//
|
|
//func handleTXTRecord(q dns.Question, msg *dns.Msg) {
|
|
// rr := &dns.TXT{
|
|
// Hdr: dns.RR_Header{
|
|
// Name: q.Name,
|
|
// Rrtype: dns.TypeTXT,
|
|
// Class: dns.ClassINET,
|
|
// Ttl: 60,
|
|
// },
|
|
// Txt: []string{"v=spf1 include:_spf.example.com ~all"},
|
|
// }
|
|
// msg.Answer = append(msg.Answer, rr)
|
|
//}
|