예제 #1
0
 public void WriteBytes(Stream stream)
 {
     byte[] encodedName = NetBiosUtils.EncodeName(Name, String.Empty);
     ByteWriter.WriteBytes(stream, encodedName);
     BigEndianWriter.WriteUInt16(stream, (ushort)Type);
     BigEndianWriter.WriteUInt16(stream, (ushort)Class);
 }
        public SessionRequestPacket(byte[] buffer) : base(buffer)
        {
            int offset = 0;

            CalledName  = NetBiosUtils.DecodeName(this.Trailer, ref offset);
            CallingName = NetBiosUtils.DecodeName(this.Trailer, ref offset);
        }
예제 #3
0
 public ResourceRecord(byte[] buffer, ref int offset)
 {
     Name = NetBiosUtils.DecodeName(buffer, ref offset);
     Type = (NameRecordType)BigEndianReader.ReadUInt16(buffer, ref offset);
     Class = (ResourceRecordClass)BigEndianReader.ReadUInt16(buffer, ref offset);
     TTL = BigEndianReader.ReadUInt32(buffer, ref offset);
     ushort dataLength = BigEndianReader.ReadUInt16(buffer, ref offset);
     Data = ByteReader.ReadBytes(buffer, ref offset, dataLength);
 }
예제 #4
0
 public override byte[] GetBytes()
 {
     byte[] part1 = NetBiosUtils.EncodeName(CalledName, String.Empty);
     byte[] part2 = NetBiosUtils.EncodeName(CallingName, String.Empty);
     this.Trailer = new byte[part1.Length + part2.Length];
     ByteWriter.WriteBytes(this.Trailer, 0, part1);
     ByteWriter.WriteBytes(this.Trailer, part1.Length, part2);
     return(base.GetBytes());
 }
예제 #5
0
 public void WriteBytes(Stream stream, int? nameOffset)
 {
     if (nameOffset.HasValue)
     {
         NetBiosUtils.WriteNamePointer(stream, nameOffset.Value);
     }
     else
     {
         byte[] encodedName = NetBiosUtils.EncodeName(Name, String.Empty);
         ByteWriter.WriteBytes(stream, encodedName);
     }
     BigEndianWriter.WriteUInt16(stream, (ushort)Type);
     BigEndianWriter.WriteUInt16(stream, (ushort)Class);
     BigEndianWriter.WriteUInt32(stream, TTL);
     BigEndianWriter.WriteUInt16(stream, (ushort)Data.Length);
     ByteWriter.WriteBytes(stream, Data);
 }
예제 #6
0
 public QuestionSection(byte[] buffer, ref int offset)
 {
     Name  = NetBiosUtils.DecodeName(buffer, ref offset);
     Type  = (NameRecordType)BigEndianReader.ReadUInt16(buffer, ref offset);
     Class = (QuestionClass)BigEndianReader.ReadUInt16(buffer, ref offset);
 }
 public NameRegistrationRequest(string machineName, NetBiosSuffix suffix, IPAddress address) : this()
 {
     Question.Name = NetBiosUtils.GetMSNetBiosName(machineName, suffix);
     Address       = address.GetAddressBytes();
 }
예제 #8
0
 public SessionRequestPacket(byte[] buffer, int offset) : base(buffer, offset)
 {
     CalledName  = NetBiosUtils.DecodeName(Trailer, ref offset);
     CallingName = NetBiosUtils.DecodeName(Trailer, ref offset);
 }