我正在尝试通过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解码值方面一直不成功
值示例:'\ x04 \ x00 \ x01 \ x00 \ x05 \ xf0 \ x00 \ x00R \ x02 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 | i7 \ x00 \ xc0 \ xa8 \ x016'
-我知道这是一条指向“ barbel”名称为192.168.1.54的A记录
有人在Python中使用过dnsRecord值吗?
最佳答案
dnsRecord的结构似乎在Microsoft的DNS开放规范文档(MS-DNSP)中进行了描述。专门针对dnsRecord的内容在第2.3.2.2节中进行了描述:
https://msdn.microsoft.com/en-us/library/ee898781.aspx
从上面的链接:
DataLength(2个字节):包含
数据字段的长度(以字节为单位)。
类型(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节)。这个领域
使用大端字节序。
保留(4个字节):该字段保留供将来使用。价值
必须为0x00000000。
TimeStamp(4个字节):请参见dwTimeStamp(2.2.2.2.5节)。
数据(变量):资源记录的数据。请参阅DNS_RPC_RECORD_DATA
(第2.2.2.2.4节)。
当然,挑战在于根据上述方法从AD解码二进制dnsRecord值。由于几个部分也有各自的部分描述其值。我尚未解码这些值,但希望此信息至少可以使您走上正确的道路。
关于python - 使用Python编码/解码AD dnsRecord值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43377036/