/// <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); }
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()); }