После парсинга текста rDNS (http://en.wikipedia.org/wiki/Reverse_DNS_lookup)
запроса в результате точки меняются на char-символы с малым id. например,
173.194.35.179
возвращает не muc03s02-in-f19.1e100.net,
а "\017muc03s02-in-f19\005\061e100\003net".
Что это такое и где можно про это почитать?
> После парсинга текста rDNS (http://en.wikipedia.org/wiki/Reverse_DNS_lookup)
> запроса в результате точки меняются на char-символы с малым id. например,
> 173.194.35.179
> возвращает не muc03s02-in-f19.1e100.net,
> а "\017muc03s02-in-f19\005\061e100\003net".
> Что это такое и где можно про это почитать?Всё работает
$ dig -x 173.194.35.179; <<>> DiG 9.9.2-P1 <<>> -x 173.194.35.179
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5339
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;179.35.194.173.in-addr.arpa. IN PTR;; ANSWER SECTION:
179.35.194.173.in-addr.arpa. 86400 IN PTR muc03s02-in-f19.1e100.net.;; Query time: 61 msec
;; SERVER: 192.168.192.1#53(192.168.192.1)
;; WHEN: Fri Dec 28 02:26:50 2012
;; MSG SIZE rcvd: 95
> Всё работаетКонечно, что все работает! Посмотрел в исходники bind пакет (дебаггил, кстати, тоже по dig -x на входе), заметил, что получают они то же самое. И проганяют по этому тексту пост-парсинг. В частности,
"\017muc03s02-in-f19\005\061e100\003net" (так выводит gdb, лидирующий 0 - 8-ричная с-ма счисления!)
значит, что
1) ответом на dns-запрос, является сторока, у которой вместо точек используется последующее кол-во символов, т.е.
017=8*1+7=15 символов в названии наиболее нижнего dns-уровня
т.е. muc03s02-in-f19, далее
\005 - 5 сивволов в dns предпоследнего уровня т.е. \061e100 или просто 1e100 (тут gdb растерялся и вывел обыкновенную "1" в восьмиричном формате),
далее \003 - три символа в dns первого уровня т.е. net.
Также необходимо в общем случае менять некоторые спецсимволы
>> Всё работает
> Конечно, что все работает! Посмотрел в исходники bind пакет (дебаггил, кстати, тоже
> по dig -x на входе), заметил, что получают они то же
> самое. И проганяют по этому тексту пост-парсинг. В частности,
> "\017muc03s02-in-f19\005\061e100\003net" (так выводит gdb, лидирующий 0 - 8-ричная с-ма
> счисления!)Не пробовал отлаживать сетевые приложения через dosemu в MSDOS с кодировкой CP866 + SoftICE,
говоря хороший секс?!> 1) ответом на dns-запрос, является строка, у которой вместо точек используется последующее
Ответом на dns-запрос, является DNS-ответ, который описан в RFC.
http://i54.fastpic.ru/big/2013/0101/9a/4a8dced72b372a4204f5b...
> Не пробовал отлаживать сетевые приложения через dosemu в MSDOS с кодировкой CP866
> + SoftICE,
> говоря хороший секс?!А вы попробуйте под debian в gdb - оргазм обеспечен! :) И потом потрудились бы почитать, в какой теме создана ветка: "Программирование под UNIX"
> http://i54.fastpic.ru/big/2013/0101/9a/4a8dced72b372a4204f5b...
И чо, откуда такая уверенность, что прога, что вывела резалт, не делала подмен? и DNS RFC тут может быть даже ни при чем. Скорее, что-то со стороны общих подменов символов во всех UDP/TCP сообщениях. Короче, смотрите исходники bind, если не верите:
./lib/dns/name.c, dns_name_totext
> И чо, откуда такая уверенность, что прога, что вывела резалт, не делала подмен?1. Внизу hex-дамп.
2. Wireshark парсит в соответсвии со стандартами.
3. Можешь снять дамп через tcpdump и глянуть текстовым редактором.> Короче, смотрите исходники bind
Такой забавный.... Может ты ещё думаешь, что пакеты по сети летают в читаемом виде?
Не хочешь RFC курить, на изучай http://www.binarytides.com/dns-query-code-in-c-with-linux-so.../