我正在尝试通过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/

10-16 02:36