diff options
Diffstat (limited to 'utils/dns_utils.go')
| -rw-r--r-- | utils/dns_utils.go | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/utils/dns_utils.go b/utils/dns_utils.go index 641968a..d89926e 100644 --- a/utils/dns_utils.go +++ b/utils/dns_utils.go @@ -75,6 +75,10 @@ func QueryMaker(query QueryStruct) *dns.Msg { return msg } +func ParseRcode(msg *dns.Msg) int { + return msg.MsgHdr.Rcode +} + func ParseAResponse(msg *dns.Msg) (string, error) { var ip_str string if len(msg.Answer) == 1 { @@ -134,7 +138,22 @@ func ParseTXTResponse(msg *dns.Msg) (string, error) { return txt_string, nil } -func SendQuery(ip string, domain string) (*dns.Msg, error) { +func SendQuery(ip, domain, port string, qtype, qclass uint16) (*dns.Msg, error) { + addr := ip + ":" + port + query := new(QueryStruct) + query.Qname = domain + query.RD = true + query.Qtype = qtype + query.Qclass = uint16(qclass) + query.Id = dns.Id() + m := QueryMaker(*query) + + res, err := dns.Exchange(m, addr) + + return res, err +} + +func SendAQuery(ip string, domain string) (*dns.Msg, error) { addr := ip + ":53" query := new(QueryStruct) query.Qname = domain |
