2009-11-08 2 views
1

Я хочу кодировать заголовок DNS-протокола с помощью C и создать дейтаграмму UDP. Допустим, у меня есть запрос www.google.com.Заголовок протокола DSs

Может кто-нибудь предложить, как это сделать?

Вы можете найти формат заголовка здесь - http://www.nersc.gov/~scottc/software/snort/dns_head.html

+1

В чем проблема? Это о C: Как я могу упаковать бит? Это о протоколе: каковы определения опкодов? –

+0

Как упаковать бит? – Bruce

+0

Вы понимаете о битовых полях в структуре, как они определены в C и т. Д.? Определяемое вами определение структуры настраивается, поэтому вы можете просто назначать прямые назначения битполам. –

ответ

2

RFC 1035 объясняет формат пакета DNS во всех деталях. Обратите внимание, что формат разработан как можно более компактный, поэтому есть много оптимизаций на уровне бит и байтов, на которые вам придется обратить внимание. Правильный, надежный DNS-кодер и декодер не для слабонервных.

+0

Можете ли вы предложить любой сайт или книгу, где я могу получить любую помощь – Bruce

+1

С чем вам нужна помощь? Вы читали и понимали этот документ RFC? –

+0

да, у меня есть ... как это сделать? – Bruce

2

+1 к RFC 1035. Вы можете взглянуть на Wireshark: http://www.wireshark.org/ Он показывает пакеты в обоих - бинарные и декодируется вид + содержит исходный код в C, так что вы можете проверить, как выполняется декодирование.

+0

Добро пожаловать в Stack Overflow! Вы здесь довольно новые, поэтому я подумал, что хочу отметить, что «+1» означает, что вы нажимаете стрелку вверх рядом с полезным сообщением, чтобы увеличить подсчет голосов. Другие будут делать то же самое для ваших сообщений, и именно так вы получаете репутацию. –

+0

Грег, спасибо за подсказку. – Oleg

+0

@Greg. Вы знаете, что единственный способ оставить комментарий перед 50 представителями - это дать ответ, верно? –

Смежные вопросы