Exemplo n.º 1
0
        /// <summary>method <c>GetBytes</c> returns reply buffer.</summary>
        public static byte[] GetBytes(NetBIOSNSHeader header, NetBIOSNSQuestion question, uint ttl, string replyIP)
        {
            byte[] rdata = Utilities.BlockCopy(new byte[2], IPAddress.Parse(replyIP).GetAddressBytes());

            NetBIOSNSHeader responseHeader = new NetBIOSNSHeader
            {
                ID      = header.ID,
                R       = true,
                Opcode  = "0000",
                AA      = true,
                TC      = false,
                RD      = true,
                RA      = false,
                Z       = "00",
                B       = false,
                RCode   = "0000",
                QDCount = 0,
                ANCount = 1
            };

            NetBIOSNSResource resource = new NetBIOSNSResource();

            resource.Name     = question.QName;
            resource.Type     = question.QType;
            resource.Class    = question.QClass;
            resource.TTL      = ttl;
            resource.RDLength = 6;
            resource.RData    = rdata;

            return(Utilities.BlockCopy(responseHeader.GetBytes(), resource.GetBytes()));
        }
Exemplo n.º 2
0
        public byte[] GetBytes(NetBIOSNSQuestion requestQuestion, uint ttl, string reply, byte[] id)
        {
            byte[] rdata = Utilities.BlockCopy(new byte[2], IPAddress.Parse(reply).GetAddressBytes());

            NetBIOSNSHeader responseHeader = new NetBIOSNSHeader
            {
                ID      = id,
                QDCount = 0,
                ANCount = 1
            };

            this.Name     = requestQuestion.QName;
            this.Type     = requestQuestion.QType;
            this.Class    = requestQuestion.QClass;
            this.TTL      = ttl;
            this.RDLength = 6;
            this.RData    = rdata;

            return(Utilities.BlockCopy(responseHeader.GetBytes(), this.GetBytes()));
        }