URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9616
[ Назад ]

Исходное сообщение
"rDNS запрос: нет точек"

Отправлено icegood , 26-Дек-12 14:04 
После парсинга текста 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 запрос: нет точек"
Отправлено pavlinux , 28-Дек-12 02:28 
> После парсинга текста 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



"rDNS запрос: нет точек"
Отправлено icegood , 30-Дек-12 17:36 
> Всё работает

Конечно, что все работает! Посмотрел в исходники 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.
Также необходимо в общем случае менять некоторые спецсимволы


"rDNS запрос: нет точек"
Отправлено pavlinux , 02-Янв-13 00:17 
>> Всё работает
> Конечно, что все работает! Посмотрел в исходники 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...
  


"rDNS запрос: нет точек"
Отправлено icegood , 02-Янв-13 14:50 
> Не пробовал отлаживать сетевые приложения через 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


"rDNS запрос: нет точек"
Отправлено pavlinux , 04-Янв-13 00:07 
> И чо, откуда такая уверенность, что прога, что вывела резалт, не делала подмен?

1. Внизу hex-дамп.
2. Wireshark парсит в соответсвии со стандартами.
3. Можешь снять дамп через tcpdump и глянуть текстовым редактором.  

> Короче, смотрите исходники bind

Такой забавный.... Может ты ещё думаешь, что пакеты по сети летают в читаемом виде?

Не хочешь RFC курить, на изучай http://www.binarytides.com/dns-query-code-in-c-with-linux-so.../