Ich brauche einen DNS länger als 40 Zeichen

382
Chris

Ich versuche, meine Reverse-DNS-Anforderungsunterroutine zu debuggen, und ich brauche ein DNS, das länger als 40 Zeichen ist, da Dnsapi anscheinend so viele Bytes im Speicher speichert.

Ich möchte also sehen, was passiert, wenn NameHost in einer PTR-Struktur 40 Byte überschreitet. Ich erwarte insbesondere, dass der reservierte Speicher für die Struktur erweitert und mit 0 aufgefüllt wird, aber ich muss das testen.

Kennt jemand eine DNS, die länger als 40 Zeichen ist? So etwas wie verylonglabel1.verylonglabel2.example.com.

0
Ich sehe das Problem nicht. Ich habe gerade eine Umkehrung eingerichtet, die länger als 40 Zeichen ist, und es funktionierte einwandfrei. Der Hochstapler vor 11 Jahren 0
Siehe auch: [Was ist die tatsächliche maximale Länge eines DNS-Namens?] (Http://blogs.msdn.com/b/oldnewthing/archive/2012/04/12/10292868.aspx) Der Hochstapler vor 11 Jahren 0

1 Antwort auf die Frage

7
ta.speot.is

Kennt jemand also einen DNS mehr als 40 Zeichen?

Nein, aber ich habe world's longest domain namein Google eingegeben und Folgendes gefunden:

www.thelongestdomainnameintheworldandthensomeandthensomemoreandmore.com 

Jetzt mache ich.

40 Zeichen, weil Dnsapi anscheinend so viele Bytes im Speicher belegt.

Wenn Sie feststellen, dass 40 Zeichen nicht notwendigerweise aus 40 Byte (Unicode) bestehen, möchten Sie vielleicht die Dokumentation lesen . Ich habe es getan und konnte nichts finden, was eine Beschränkung auf 40 Byte angibt.

Dieser RFC scheint diesbezüglich keine willkürlichen Grenzen für DNS-Einträge zu suggerieren, zumindest aus einem flüchtigen Blick.

ist nicht auf 40 Bytes beschränkt, aber wenn das DNS kürzer als 40 Zeichen ist, wird es in 40 Bytes gespeichert und am Ende mit 0 aufgefüllt Chris vor 11 Jahren 0
@ user1410908 Auffüllen mit '0' 'oder Auffüllen mit' NULL '? Wenn Sie mit NULL aufgefüllt werden, sehen Sie möglicherweise keine 40-Byte-Zeichenfolge, sondern einen Pufferüberlauf. Sicher ist es nur ein nullterminierter String und Sie behandeln ihn als solchen? ta.speot.is vor 11 Jahren 0
Ich habe gerade Ihre vorgeschlagene Domain ausprobiert, und eine DNS-Anforderung hat 94.126.42.50 zurückgegeben. Wenn ich eine umgekehrte DNS-Anfrage (PTR) auf dieser IP-Adresse durchgeführt habe, bekomme ich "serious.nothingtoseehere.org" .. lol .. was unter 40 Zeichen ist. Chris vor 11 Jahren 0
Gehen Sie einfach die Liste der Google-Ergebnisse herunter. ta.speot.is vor 11 Jahren 0
Meine Skriptsprache (AHK) kann zwischen '0' und NULL nicht wirklich unterscheiden. Ich lese Byte für Byte im Speicher und sehe die gesamte Struktur. Es gibt keinen Überlauf Chris vor 11 Jahren 0
Es ist seltsam .. Alle langen Domänen geben eine IP zurück, auf der ich, wenn ich ein Reverse-DNS mache, eine andere und kürzere (unter 40 Zeichen) Domäne zurückgibt Chris vor 11 Jahren 0
AHK scheint ziemlich flexibel zu sein http://www.autohotkey.com/board/topic/80585-wie-zu-manipulieren-binary-daten-mit-pointers/#entry86227 Sie können es nicht mit `Chr (0)` vergleichen? ta.speot.is vor 11 Jahren 0
Das ist, was ich von Speicher 0x61: 0x6D: 0x65: 0x6C: 0x69: 0x68: 0x6F: 0x75: 0x73: 0x65: 0x2E: 0x70: 0x6C: 0x75: 0x73: 0x2E: 0x6F: 0x6: 0x0: 0x0 : 0x0: 0x0: 0x78: 0xA1: 0x1E: 0x43: 0x2D: 0x59:, und wenn ich Chr (Byte) für jedes Byte aufrufe: ameliahouse.plus.com \> FD® ... scheinen die 4 0s am Ende die zu markieren Ende der Zeichenfolge Chris vor 11 Jahren 0
Sicher ist das "0x0" am Ende das letzte Zeichen plus eins? Es ist ein nullterminierter String. ta.speot.is vor 11 Jahren 0
Ich bin mir nicht sicher, ob es eine NULL-terminierte Zeichenfolge ist oder nicht. Ich bin nicht sicher, wo ich aufhören sollte zu lesen. Ich befürchte, dass die Zeichenfolge an einem Punkt nicht mit null abgeschlossen ist und mehr liest, als ich sollte. Ich bin nicht sicher, wie die DNS_RECORD-Struktur im Speicher gespeichert wird. Chris vor 11 Jahren 0
`PTR.pNameHost` wird von der Verwendung [hier] (http://support.microsoft.com/kb/831226) null beendet, sonst würde es mit` printf` nicht korrekt funktionieren. ta.speot.is vor 11 Jahren 0
Ich habe dieses Beispiel tatsächlich gelesen, aber ich bin nicht gut in C und wusste nicht, dass printf eine mit Null versehene Zeichenfolge benötigt. Danke, ich werde deinem Rat folgen. Chris vor 11 Jahren 0