本文整理汇总了C#中Heijden.DNS.RecordReader类的典型用法代码示例。如果您正苦于以下问题:C# RecordReader类的具体用法?C# RecordReader怎么用?C# RecordReader使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
RecordReader类属于Heijden.DNS命名空间,在下文中一共展示了RecordReader类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RecordKEY
public RecordKEY(RecordReader rr)
{
FLAGS = rr.ReadUInt16();
PROTOCOL = rr.ReadByte();
ALGORITHM = rr.ReadByte();
PUBLICKEY = rr.ReadString();
}
示例2: RecordTXT
public RecordTXT(RecordReader rr, int Length)
{
int pos = rr.Position;
TXT = new List<string>();
while ((rr.Position - pos) < Length)
TXT.Add(rr.ReadString());
}
示例3: RecordNSEC
public RecordNSEC(RecordReader rr)
{
// re-read length
ushort RDLENGTH = rr.ReadUInt16(-2);
RDATA = rr.ReadBytes(RDLENGTH);
}
示例4: ReadDomainName
public string ReadDomainName()
{
var bytes = new List<byte>();
int length = 0;
// get the length of the first label
while ((length = ReadByte()) != 0)
{
// top 2 bits set denotes domain name compression and to reference elsewhere
if ((length & 0xc0) == 0xc0)
{
// work out the existing domain name, copy this pointer
RecordReader newRecordReader = new RecordReader(m_Data, (length & 0x3f) << 8 | ReadByte());
if (bytes.Count > 0)
{
return Encoding.UTF8.GetString(bytes.ToArray(), 0, bytes.Count) + newRecordReader.ReadDomainName();
}
return newRecordReader.ReadDomainName();
}
// if not using compression, copy a char at a time to the domain name
while (length > 0)
{
bytes.Add(ReadByte());
length--;
}
bytes.Add((byte)'.');
}
if (bytes.Count == 0)
return ".";
return Encoding.UTF8.GetString(bytes.ToArray(), 0, bytes.Count);
}
示例5: RecordSRV
public RecordSRV(RecordReader rr)
{
Priority = rr.ReadShort();
Weight = rr.ReadShort();
Port = rr.ReadShort();
Target = rr.ReadDomainName();
}
示例6: RecordSRV
public RecordSRV(RecordReader rr)
{
PRIORITY = rr.ReadUInt16();
WEIGHT = rr.ReadUInt16();
PORT = rr.ReadUInt16();
TARGET = rr.ReadDomainName();
}
示例7: Response
public Response(IPEndPoint iPEndPoint, byte[] data)
{
Error = "";
Server = iPEndPoint;
TimeStamp = DateTime.Now;
MessageSize = data.Length;
RecordReader rr = new RecordReader(data);
Questions = new List<Question>();
Answers = new List<AnswerRR>();
Authorities = new List<AuthorityRR>();
Additionals = new List<AdditionalRR>();
header = new Header(rr);
for (int intI = 0; intI < header.QDCOUNT; intI++)
{
Questions.Add(new Question(rr));
}
for (int intI = 0; intI < header.ANCOUNT; intI++)
{
Answers.Add(new AnswerRR(rr));
}
for (int intI = 0; intI < header.NSCOUNT; intI++)
{
Authorities.Add(new AuthorityRR(rr));
}
for (int intI = 0; intI < header.ARCOUNT; intI++)
{
Additionals.Add(new AdditionalRR(rr));
}
}
示例8: ReadDomainName
public string ReadDomainName()
{
StringBuilder name = new StringBuilder();
int length = 0;
// get the length of the first label
while ((length = ReadByte()) != 0)
{
// top 2 bits set denotes domain name compression and to reference elsewhere
if ((length & 0xc0) == 0xc0)
{
// work out the existing domain name, copy this pointer
RecordReader newRecordReader = new RecordReader(m_Data, (length & 0x3f) << 8 | ReadByte());
name.Append(newRecordReader.ReadDomainName());
return name.ToString();
}
// if not using compression, copy a char at a time to the domain name
while (length > 0)
{
name.Append(ReadChar());
length--;
}
name.Append('.');
}
if (name.Length == 0)
return ".";
else
return name.ToString();
}
示例9: RecordA
public RecordA(RecordReader rr)
{
System.Net.IPAddress.TryParse(string.Format("{0}.{1}.{2}.{3}",
rr.ReadByte(),
rr.ReadByte(),
rr.ReadByte(),
rr.ReadByte()), out this.Address);
}
示例10: RecordA
public RecordA(RecordReader rr)
{
System.Net.IPAddress.TryParse(string.Format(CultureInfo.InvariantCulture, "{0}.{1}.{2}.{3}",
rr.ReadByte(),
rr.ReadByte(),
rr.ReadByte(),
rr.ReadByte()), out this.m_address);
}
示例11: RecordUnknown
public RecordUnknown(RecordReader rr)
{
rr.Position -=2;
// re-read length
ushort RDLENGTH = rr.ReadShort();
// skip bytes
rr.ReadBytes(RDLENGTH);
}
示例12: RecordNULL
public RecordNULL(RecordReader rr)
{
rr.Position -= 2;
// re-read length
ushort RDLENGTH = rr.ReadUInt16();
ANYTHING = new byte[RDLENGTH];
ANYTHING = rr.ReadBytes(RDLENGTH);
}
示例13: RecordA
public RecordA(RecordReader rr)
{
Address = string.Format("{0}.{1}.{2}.{3}",
rr.ReadByte(),
rr.ReadByte(),
rr.ReadByte(),
rr.ReadByte());
}
示例14: RecordNXT
public RecordNXT(RecordReader rr)
{
ushort length = rr.ReadUInt16(-2);
NEXTDOMAINNAME = rr.ReadDomainName();
length -= (ushort)rr.Position;
BITMAP = new byte[length];
BITMAP = rr.ReadBytes(length);
}
示例15: RecordA
public RecordA(RecordReader rr)
{
Address = new System.Net.IPAddress(rr.ReadBytes(4));
//System.Net.IPAddress.TryParse(string.Format("{0}.{1}.{2}.{3}",
// rr.ReadByte(),
// rr.ReadByte(),
// rr.ReadByte(),
// rr.ReadByte()), out this.Address);
}