FastNetMon

Friday 17 October 2014

Парсинг бинарных UDP DNS сообщений на Go lang

Эту таску легко решить с помощью совершенно волшебного модуля от miekg (на нем работает DNS в CloufFlare, да).

Стягиваем модуль:
go get github.com/miekg/dns 
 Подключаем:

import "github.com/miekg/dns"
А вот простенький пример кода, который извлекает имя домена из пакета:
var msg dns.Msg
err = msg.Unpack(binary_date_payload)

if err != nil { // Send a FormatError back
//fmt.Println("Can't parse!", err)
continue
}

domain_name := strings.ToLower(msg.Question[0].Name)
fmt.Println(domain_name)



No comments :

Post a Comment

Note: only a member of this blog may post a comment.