30 lines
512 B
Go
30 lines
512 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"net"
|
||
|
"github.com/miekg/dns"
|
||
|
)
|
||
|
|
||
|
type Addr struct {
|
||
|
IP net.IP
|
||
|
}
|
||
|
|
||
|
func (addr Addr) buildRR(name string, ttl int) dns.RR {
|
||
|
if ip4 := addr.IP.To4(); ip4 != nil {
|
||
|
return &dns.A{
|
||
|
Hdr: dns.RR_Header{Name: name, Rrtype: dns.TypeA, Class: dns.ClassINET, Ttl: uint32(ttl)},
|
||
|
A: ip4,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if ip6 := addr.IP.To16(); ip6 != nil {
|
||
|
return &dns.AAAA{
|
||
|
Hdr: dns.RR_Header{Name: name, Rrtype: dns.TypeAAAA, Class: dns.ClassINET, Ttl: uint32(ttl)},
|
||
|
AAAA: ip6,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
}
|
||
|
|