Add as212 thingy server as example
This commit is contained in:
parent
76db7d1a62
commit
93c0500dce
|
@ -9,30 +9,34 @@ package main
|
|||
|
||||
import (
|
||||
"github.com/miekg/dns"
|
||||
"log"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
const SOA string = "@ SOA prisoner.iana.org. hostmaster.root-servers.org. 2002040800 1800 900 0604800 604800"
|
||||
|
||||
var zones = map[string]dns.RR{
|
||||
"10.in-addr.arpa": NewRR("$ORIGIN 10.in-addr.arpa.\n" + SOA),
|
||||
"254.169.in-addr.arpa": NewRR("$ORIGIN 254.169.in-addr.arpa.\n" + SOA),
|
||||
"168.192.in-addr.arpa": NewRR("$ORIGIN 168.192.in-addr.arpa.\n" + SOA),
|
||||
"16.172.in-addr.arpa": NewRR("$ORIGIN 16.172.in-addr.arpa.\n" + SOA),
|
||||
"17.172.in-addr.arpa": NewRR("$ORIGIN 17.172.in-addr.arpa.\n" + SOA),
|
||||
"18.172.in-addr.arpa": NewRR("$ORIGIN 18.172.in-addr.arpa.\n" + SOA),
|
||||
"19.172.in-addr.arpa": NewRR("$ORIGIN 19.172.in-addr.arpa.\n" + SOA),
|
||||
"20.172.in-addr.arpa": NewRR("$ORIGIN 20.172.in-addr.arpa.\n" + SOA),
|
||||
"21.172.in-addr.arpa": NewRR("$ORIGIN 21.172.in-addr.arpa.\n" + SOA),
|
||||
"22.172.in-addr.arpa": NewRR("$ORIGIN 22.172.in-addr.arpa.\n" + SOA),
|
||||
"23.172.in-addr.arpa": NewRR("$ORIGIN 23.172.in-addr.arpa.\n" + SOA),
|
||||
"24.172.in-addr.arpa": NewRR("$ORIGIN 24.172.in-addr.arpa.\n" + SOA),
|
||||
"25.172.in-addr.arpa": NewRR("$ORIGIN 25.172.in-addr.arpa.\n" + SOA),
|
||||
"26.172.in-addr.arpa": NewRR("$ORIGIN 26.172.in-addr.arpa.\n" + SOA),
|
||||
"27.172.in-addr.arpa": NewRR("$ORIGIN 27.172.in-addr.arpa.\n" + SOA),
|
||||
"28.172.in-addr.arpa": NewRR("$ORIGIN 28.172.in-addr.arpa.\n" + SOA),
|
||||
"29.172.in-addr.arpa": NewRR("$ORIGIN 29.172.in-addr.arpa.\n" + SOA),
|
||||
"30.172.in-addr.arpa": NewRR("$ORIGIN 30.172.in-addr.arpa.\n" + SOA),
|
||||
"31.172.in-addr.arpa": NewRR("$ORIGIN 31.172.in-addr.arpa.\n" + SOA),
|
||||
"10.in-addr.arpa.": NewRR("$ORIGIN 10.in-addr.arpa.\n" + SOA),
|
||||
"254.169.in-addr.arpa.": NewRR("$ORIGIN 254.169.in-addr.arpa.\n" + SOA),
|
||||
"168.192.in-addr.arpa.": NewRR("$ORIGIN 168.192.in-addr.arpa.\n" + SOA),
|
||||
"16.172.in-addr.arpa.": NewRR("$ORIGIN 16.172.in-addr.arpa.\n" + SOA),
|
||||
"17.172.in-addr.arpa.": NewRR("$ORIGIN 17.172.in-addr.arpa.\n" + SOA),
|
||||
"18.172.in-addr.arpa.": NewRR("$ORIGIN 18.172.in-addr.arpa.\n" + SOA),
|
||||
"19.172.in-addr.arpa.": NewRR("$ORIGIN 19.172.in-addr.arpa.\n" + SOA),
|
||||
"20.172.in-addr.arpa.": NewRR("$ORIGIN 20.172.in-addr.arpa.\n" + SOA),
|
||||
"21.172.in-addr.arpa.": NewRR("$ORIGIN 21.172.in-addr.arpa.\n" + SOA),
|
||||
"22.172.in-addr.arpa.": NewRR("$ORIGIN 22.172.in-addr.arpa.\n" + SOA),
|
||||
"23.172.in-addr.arpa.": NewRR("$ORIGIN 23.172.in-addr.arpa.\n" + SOA),
|
||||
"24.172.in-addr.arpa.": NewRR("$ORIGIN 24.172.in-addr.arpa.\n" + SOA),
|
||||
"25.172.in-addr.arpa.": NewRR("$ORIGIN 25.172.in-addr.arpa.\n" + SOA),
|
||||
"26.172.in-addr.arpa.": NewRR("$ORIGIN 26.172.in-addr.arpa.\n" + SOA),
|
||||
"27.172.in-addr.arpa.": NewRR("$ORIGIN 27.172.in-addr.arpa.\n" + SOA),
|
||||
"28.172.in-addr.arpa.": NewRR("$ORIGIN 28.172.in-addr.arpa.\n" + SOA),
|
||||
"29.172.in-addr.arpa.": NewRR("$ORIGIN 29.172.in-addr.arpa.\n" + SOA),
|
||||
"30.172.in-addr.arpa.": NewRR("$ORIGIN 30.172.in-addr.arpa.\n" + SOA),
|
||||
"31.172.in-addr.arpa.": NewRR("$ORIGIN 31.172.in-addr.arpa.\n" + SOA),
|
||||
}
|
||||
|
||||
func NewRR(s string) dns.RR {
|
||||
|
@ -40,5 +44,35 @@ func NewRR(s string) dns.RR {
|
|||
return r
|
||||
}
|
||||
|
||||
func as212Handler(w dns.ResponseWriter, r *dns.Msg) {}
|
||||
func main() {}
|
||||
func main() {
|
||||
go func() {
|
||||
err := dns.ListenAndServe(":8053", "tcp", nil)
|
||||
if err != nil {
|
||||
log.Fatal("Failed to set tcp listener %s\n", err.Error())
|
||||
}
|
||||
}()
|
||||
go func() {
|
||||
err := dns.ListenAndServe(":8053", "udp", nil)
|
||||
if err != nil {
|
||||
log.Fatal("Failed to set tcp listener %s\n", err.Error())
|
||||
}
|
||||
}()
|
||||
for z, rr := range zones {
|
||||
dns.HandleFunc(z, func(w dns.ResponseWriter, r *dns.Msg) {
|
||||
m := new(dns.Msg)
|
||||
m.SetReply(r)
|
||||
m.Authoritative = true
|
||||
m.Ns = []dns.RR{rr}
|
||||
w.WriteMsg(m)
|
||||
})
|
||||
}
|
||||
sig := make(chan os.Signal)
|
||||
signal.Notify(sig, syscall.SIGINT, syscall.SIGTERM)
|
||||
|
||||
for {
|
||||
select {
|
||||
case s := <-sig:
|
||||
log.Fatalf("Signal (%d) received, stopping\n", s)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue