2017-04-12 75 views
0

我正在尝试通过Python编辑Active Directory dnsRecord值。该属性值是一个二元结构 - 我找到文档在各种场所的结构如http://www.indented.co.uk/2009/06/18/mapping-the-dnsrecord-attribute/我也发现了Perl代码的几个例子来解释价值,如https://wiki.samba.org/index.php/Working_with_Active_Directory_encoded_LDAP_values使用Python编码/解码AD dnsRecord值

但是我在解码值一直不成功的与Python

值示例:“\ X04 \ X00 \ X01 \ X00 \ X05 \ XF0 \ X00 \ x00R \ X02 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 | i7的\ x00 \ xc0 \ xa8 \ x016' - 我知道这是一条指向名称“barbel”的记录到192.168.1.54

有没有人在Python中使用dnsRecord值?

回答

0

dnsRecord的结构似乎在微软的DNS(MS-DNSP)开放规范文档中描述。专门为DNSRECORD它在2.3.2.2节中描述:

https://msdn.microsoft.com/en-us/library/ee898781.aspx

从上面的链接:

数据长度(2个字节):包含 长度的无符号二进制整数,以字节为单位,Data字段。

类型(2字节):资源记录的类型。请参阅DNS_RECORD_TYPE (第2.2.2.1.1节)。

版本(1字节):与资源 记录属性关联的版本号。该值必须是0x05。

等级(1字节):RANK *标志 值之一的最低有效字节。参见dwFlags(第2.2.2.2.5节)。

标志(2字节):未使用。该值必须是0x0000。

串行(4字节):包含此资源记录的区域 的SOA记录的序列号。请参阅DNS_RPC_RECORD_SOA(部分 2.2.2.2.4.3)。

TtlSeconds(4字节):请参阅dwTtlSeconds(第2.2.2.2.5节)。该字段 使用big-endian字节顺序。

保留(4字节):该字段留作将来使用。值 务必是0x00000000。

TimeStamp(4字节):请参阅dwTimeStamp(第2.2.2.2.5节)。

数据(变量):资源记录的数据。请参阅DNS_RPC_RECORD_DATA (第2.2.2.2.4节)。

当然是根据上面解码来自AD的二进制dnsRecord值的挑战。由于几个部分也有他们自己的部分来描述他们的价值。我还没有解码这些值,但希望这些信息至少能让你走上正确的道路。