我正在阅读Windows DNS服务器调试日志文件,特别是数据包捕获,并且我正在尝试了解如何解析主机名以便在脚本中使用它们。
以下是ANSWER部分的示例:
Offset = 0x007f, RR count = 2
Name "[C06A](5)e6033(1)g(10)akamaiedge[C059](3)net(0)"
TYPE A (1)
CLASS 1
TTL 20
DLEN 4
DATA 23.62.18.101
因此,查看字符串"[C06A](5)e6033(1)g(10)akamaiedge[C059](3)net(0)"
我意识到括号中的数字是后面字符数的计数。用点替换所有这些(除了第一个和最后一个,应该被删除)就像一个魅力。
e6033.g.akamaiedge.net
。这是一个有效的主机名。
所以我的问题是:方括号中的内容实际上是什么意思?将该字符串转换为可以提供给nslookup和其他工具的正确主机名的正确方法是什么?
答案 0 :(得分:2)
它似乎是NAME字段的第二种可能形式,如下所示:
http://www.zytrax.com/books/dns/ch15/#name
NAME此名称反映了问题的QNAME,即任何可能的问题 两种格式之一。第一种格式是为其定义的标签格式 QNAME上面。第二种格式是指针(为了数据的利益) 压缩对原作者来说更公平 比现在更重要了。指针是带符号的无符号16位值 以下格式(11的前两位表示指针 格式):
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 1
从整个消息开始的八位字节(字节)的偏移量。 必须指向标签格式记录以获取名称长度。
注意:指针(如果使用)终止名称。名称字段可能包含 以零长度终止的标签(或标签序列) 记录或单个指针或标签(或标签序列)终止 用指针。
其中响应使用指针来引用消息中其他位置的数据。