Exemplo n.º 1
0
        /// <summary></summary>
        /// <param name="bytes"></param>
        private static DnsMessage Parse(byte[] bytes)
        {
            if (bytes == null)
            {
                throw new ArgumentNullException("bytes");
            }

            DnsMessage result = new DnsMessage();

            int byteOffset = 0;

            byteOffset  = byteOffset + result.ParseHeader(bytes, byteOffset);
            byteOffset += result.Questions.LoadFrom(bytes, byteOffset, result.QuestionCount);
            byteOffset += result.Answers.LoadFrom(bytes, byteOffset, result.AnswerCount);
            byteOffset += result.Authorities.LoadFrom(bytes, byteOffset, result.NameServerCount);
            byteOffset += result.Additionals.LoadFrom(bytes, byteOffset, result.AdditionalCount);

            // Console.WriteLine("Bytes read: {0}", byteOffset);

            return(result);
        }
Exemplo n.º 2
0
 private string GetKeyName(DnsMessage message)
 {
     return(message.QuestionCount > 0
             ? string.Format("{0}|{1}|{2}|{3}", message.QueryIdentifier, message.Questions[0].Class, message.Questions[0].Type, message.Questions[0].Name)
             : message.QueryIdentifier.ToString());
 }