Шаг 7 - Последнее дополнение

Сделаю небольшое дополнение к уже сказанному:

1. Указатели

Как я уже говорил, указатель представляет собой два байта, при этом в первом из них два старших бита установлены в единицы ($C0), оставшиеся шесть битов и еще восемь битов из второго байта используются в качестве смещения относительно начала блока данных. Так показал мой опыт. В документации я проглядел, или прочитал невнимательно, но жизнь все расставила по местам. Да и неэкономно оставлять пустыми шесть старших битов. Это позволяет адресоваться к именам на довольно приличном участке памяти в 16 Кб. Этот феномен я углядел при исследовании ответа на запрос по 'mail.ru', на него пришло 56 вхождений (!), блок получился приличный и смещение уехало за пределы числа FF, использовался младший бит из старшего байта. Вы можете посмотреть этот запрос в исходниках проекта. Пришлось корректировать в программе, увеличивать буфер для приема до 32 Кб, просто так, на всякий случай. Также сплошняком идет смешанное представление имен: обычно начало текстовое, а потом уже к нему цепляется указатель, оно и понятно, место экономить надо.

2. Проверка по типу запроса 'ALL'

Для разнообразия я попробовал получить данные о разных хостах, при этом использовал только один общий тип запроса - 'ALL', с ним наиболее интересно экспериментировать, теоретически сервер должен выдать всю информацию по хосту, какая у него есть в наличиии. Наверное. И вот что интересное я выяснил : единообразия представляемой информации нет и в помине. Такое впечатление, что приходил кто хотел и записывал что хотел о себе самом, или то, что посчитал нужным. На некоторых хостах, подобных 'mail.ru' может быть за пять десятков RR записей. А по некоторым самый минимум - 2-3 записи. И чем это вызвано, я пока не знаю. Может быть где-нибудь встречу эту информацию, но пока не видно. Я имею в виду, что даже у самого маленького и паршивого арендованного хоста (как у моего, скажем) может быть и сервер родителя, и алиасы его же и так далее. Ан, не тут-то было. Если я запрашиваю инфу по своей страничке, мне возвращают исключительно IP адрес хозяйского сервера. Все. Прямо дискриминация какая-то. Бесчеловечное обращение с клиентом. :)

3. IP адреса

Из практики также видно, что какого бы типа ни был запрос, но если возвращаются какие-то названия/алиасы серверов, в дополнение к этому всегда идут и IP адреса каждого сервера. Очень удобно на мой взгляд.

4. Мой клиент

Того NS клиента, что я написал, предложили выложить для всеобщего использования. Я было думал не заходить так далеко, поскольку клиента как такового не планировал делать, а инфа мне нужна была вовсе даже для моего почтового сервера. Однако, исторически так сложилось, что лабораторная программка переросла в простенького клиента. Я убрал из нее все вопиющие безобразия, причесал слегка, и отдаю на поток и разграбление. Теперь всякий кто только захочет, наверняка узнает, как и почему они тикают : исходный код я тоже отдаю в безвозмездное пользование. Но при этом хочу заметить, что снимаю всякую ответственность с себя. Любой, кто будет сим клиентом пользоваться, будет делать это на свой страх и риск. Никаких претензий приниматься не будет. Да, есть там и излишества некоторые, и проверка на ошибки далеко не всегда присутствует, да только мне уже в лом было ее вылизывать. Пущай будет вечной альфой. :) Где она находится - WebMaster покажет :), с него спрашивайте. Короче говоря, кто захочет - разберется.

Что еще ? Да, все уже, пожалуй. Если кто что захочет спросить, адреса Е-майловские везде понатыканы, но на всякий случай и здесь скажу : zzlex@mail.ru.

Скачивайте проект по ссылке ниже и изучайте !


Загрузить проект | Предыдущий Шаг | Оглавление
Автор Alex Zzlex.