Мне нужен DNS длиннее 40 символов

305
Chris

Я пытаюсь отладить подпрограмму обратного DNS-запроса, и мне нужен DNS, который длиннее 40 символов, потому что, очевидно, именно столько байтов Dnsapi резервирует в памяти.

Итак, я хочу посмотреть, что происходит, когда NameHost в структуре PTR превышает 40 байтов. В частности, я ожидаю, что зарезервированная память для структуры будет расширена и дополнена нулями, но мне нужно это проверить.

Так кто-нибудь знает DNS длиннее 40 символов? Нечто подобное verylonglabel1.verylonglabel2.example.com.

0
Я не вижу проблемы. Я только что настроил реверс длиннее 40 символов, и он работал безупречно. Der Hochstapler 11 лет назад 0
Также см .: [Какова реальная максимальная длина имени DNS?] (Http://blogs.msdn.com/b/oldnewthing/archive/2012/04/12/10292868.aspx) Der Hochstapler 11 лет назад 0

1 ответ на вопрос

7
ta.speot.is

Так кто-нибудь знает днс длиннее 40 символов?

Нет, но я набрал world's longest domain nameв Google и нашел это:

www.thelongestdomainnameintheworldandthensomeandthensomemoreandmore.com 

Теперь я делаю.

40 символов, потому что, видимо, именно столько байтов Dnsapi резервирует в памяти.

Отметив, что 40 символов - это не обязательно 40 байтов (Unicode), вы можете прочитать документацию, я так и не нашел ничего, что могло бы предложить ограничение в 40 байтов.

Этот RFC, кажется, не предлагает каких-либо произвольных ограничений на записи DNS в этом отношении, по крайней мере, из беглого взгляда.

не ограничивается 40 байтами, но если dns короче 40 символов, сохраняется в 40 байтах и ​​дополняется нулями в конце Chris 11 лет назад 0
@ user1410908 Заполнение с помощью '' 0 '' или дополнение с помощью 'NULL`? Потому что, если он дополнен `NULL`, вы можете не видеть 40-байтовую строку, вы можете наблюдать переполнение буфера. Конечно, это просто строка с нулевым символом в конце, и вы относитесь к ней как таковой? ta.speot.is 11 лет назад 0
Я только что попробовал ваш предложенный домен, и DNS-запрос возвратил 94.126.42.50, и когда я сделал обратный DNS-запрос (PTR) для этого IP-адреса, я получаю "серьезно.nothingtoseehere.org" .. LOL .. который меньше 40 символов. Chris 11 лет назад 0
Просто зайдите в список результатов Google. ta.speot.is 11 лет назад 0
мой язык сценариев (AHK) не может на самом деле сказать разницу между '0' и NULL. Я читаю побайтно в памяти и вижу всю структуру .. переполнения нет Chris 11 лет назад 0
Это странно ... все длинные домены возвращают IP, на котором, если я делаю обратный DNS, он возвращает другой и более короткий (до 40 символов) домен Chris 11 лет назад 0
AHK кажется довольно гибким http://www.autohotkey.com/board/topic/80585-how-to-manipulate-binary-data-with-pointers/#entry86227 Вы не можете сравнить его с `Chr (0)`? ta.speot.is 11 лет назад 0
Это то, что я получаю из памяти 0x61: 0x6D: 0x65: 0x6C: 0x69: 0x61: 0x68: 0x6F: 0x75: 0x73: 0x65: 0x2E: 0x70: 0x6C: 0x75: 0x73: 0x2E: 0x63: 0x6F: 0x6D: 0x6D: 0x6D: 0 : 0x0: 0x0: 0x78: 0xA1: 0x1E: 0x43: 0x2D: 0x59:, и если я вызываю Chr (байт) для каждого байта: ameliahouse.plus.com \> FDŽ .. 4 0 в конце, кажется, отмечают конец строки Chris 11 лет назад 0
Конечно, один `0x0` в конце - последний символ плюс один? Это строка с нулевым символом в конце. ta.speot.is 11 лет назад 0
Это то, в чем я не уверен, является ли это строкой с нулевым символом в конце или нет. Я не уверен, где я должен прекратить читать. Я боюсь, что в какой-то момент строка не заканчивается нулем, и читать больше, чем я должен. Я не уверен, как структура DNS_RECORD хранится в памяти. Chris 11 лет назад 0
Из-за использования [здесь] (http://support.microsoft.com/kb/831226), `PTR.pNameHost` завершается нулем, иначе он не будет работать правильно с` printf`. ta.speot.is 11 лет назад 0
О, я действительно читал этот пример, но я не очень хорош в C и не знал, что printf требует строки с нулевым символом в конце. Спасибо, я последую вашему совету. Chris 11 лет назад 0