Хотел задать вопрос: как можно получить IP-адрес из запроса узла DNS в зоне обратного просмотра с помощью LDAP? Чтобы быть более точным, я хочу показать вам, чего я пытался достичь:
На картинке выше мы видим свойства DNS-узла, которые были получены при выполнении запроса LDAP. Возможно ли каким-то образом получить IP-адрес узла из свойства dnsrecord (например, с помощью некоторой функции .NET) без манипулирования строками в свойствах «отличительное имя», «имя», «dc» для достижения той же цели?
Спасибо!
dsnRecord - это байтовый массив.
Пример структуры данных находится в следующем модуле DNSShell PowerShell. Они не предоставляют записи PTR как таковые, но вы, вероятно, сможете выяснить разницу, используя некоторые другие примеры. Обратите внимание, что TtlSeconds - это порядок байтов с прямым порядком байтов.
https://archive.codeplex.com/?p=dnsshell
/// <summary>
/// https://msdn.microsoft.com/en-us/library/ee898781.aspx
/// The dnsRecord attribute is used to store DNS resource record definitions. This attribute MUST be formatted as follows:
///
/// DataLength (2 bytes): An unsigned binary integer containing the length, in bytes, of the Data field.
/// Type (2 bytes): The resource record's type. See DNS_RECORD_TYPE (section 2.2.2.1.1).
/// Version (1 byte): The version number associated with the resource record attribute. The value MUST be 0x05.
/// Rank (1 byte): The least-significant byte of one of the RANK* flag values. See dwFlags (section 2.2.2.2.5).
/// Flags (2 bytes): Not used. The value MUST be 0x0000.
/// Serial (4 bytes): The serial number of the SOA record of the zone containing this resource record. See DNS_RPC_RECORD_SOA (section 2.2.2.2.4.3).
/// TtlSeconds (4 bytes): See dwTtlSeconds (section 2.2.2.2.5). This field uses big-endian byte order.
/// Reserved (4 bytes): This field is reserved for future use. The value MUST be 0x00000000.
/// TimeStamp (4 bytes): See dwTimeStamp (section 2.2.2.2.5).
/// Data (variable): The resource record's data. See DNS_RPC_RECORD_DATA (section 2.2.2.2.4).
/// </summary>
/// <example>
/// 1 1 1 1 1 1
/// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
/// +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/// | DATA LENGTH |
/// +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/// | TYPE |
/// +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/// | VERSION | RANK |
/// +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/// | FLAGS |
/// +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/// | SERIAL |
/// | |
/// +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/// | TTLSECONDS |
/// | |
/// +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/// | RESERVED |
/// | |
/// +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/// | TIMESTAMP |
/// | |
/// +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
/// | DATA |
/// | |
/// +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/// </example>