Desejo recuperar bytes brutos da resposta do DNS para fins de depuração, por exemplo:
dig -t https clickhouse.com
;; ANSWER SECTION:
clickhouse.com. 242 IN HTTPS 1 . alpn="h3,h3-29,h2" ipv4hint=172.66.40.249,172.66.43.7 ipv6hint=2606:4700:3108::ac42:28f9,2606:4700:3108::ac42:2b07
Como posso obter os bytes dessa seção de resposta, existe alguma ferramenta que possa me mostrar esses bytes brutos antes de decodificados em texto simples?
Tentei com wireshark, mas está criptografado, tentei com outro servidor dns, mas não obtive resposta (parece bloqueado pelo ISP).
ATUALIZAÇÃO :
então eu faço de forma manual, crio um programa simples em Go:
m := &dns.Msg{
MsgHdr: dns.MsgHdr{
Authoritative: false,
AuthenticatedData: false,
CheckingDisabled: true,
RecursionDesired: true,
Opcode: dns.OpcodeQuery,
},
Question: make([]dns.Question, 1),
}
q := &m.Question[0]
q.Qclass = dns.ClassINET
q.Qtype = dns.TypeHTTPS
q.Name = "clickhouse.com."
// 0 = {uint8} 0
r, err := dns.Exchange(m, "9.9.9.9:9953")
coloque o ponto de interrupção dns.Answer, off, err = unpackRRslice(int(dh.Ancount), msg, off)
e github.com/miekg/dns/msg.go:840
copie e cole o msg
arquivo de texto.
Dependendo da versão
dig
(9.11.0 ou posterior), você pode passar o+unknownformat
sinalizador:Por exemplo, a consulta
example.com. IN SOA
forneceEste formato ( RFC 3597 ) apresenta o formato de fio de dados de registro bruto no formato
\# <rdata-length> <rdata>...
em querdata
é codificado em hexadecimal e pode ser dividido em várias palavras, portanto, o acima é