Exemplo n.º 1
0
        private void DHCP(DhcpPackets dhcp)
        {
            if (dhcp == null)
            {
                return;
            }
            if (DhcpNode == null)
            {
                DhcpNode = CreatNode("DHCP", 7);
            }
            DhcpNode.Nodes.Clear();

            string opString = (dhcp.OP == 1) ? "Boot Request" : "Boot Reply";

            DhcpNode.Nodes.Add("Op Code: " + opString + " (" + dhcp.OP + ")");
            DhcpNode.Nodes.Add("Hareware Type: " + dhcp.HType + " [0x" + ((ushort)dhcp.HType).ToString("X2") + "]");
            DhcpNode.Nodes.Add("Hareware Address Length: " + dhcp.HLen);
            DhcpNode.Nodes.Add("Hops: " + dhcp.Hops);
            DhcpNode.Nodes.Add("XID: " + dhcp.XID);
            DhcpNode.Nodes.Add("Seconds: " + dhcp.Secs.ToString());
            if (DhcpFlagsNodes == null)
            {
                DhcpFlagsNodes = new TreeNode();
            }
            DhcpFlagsNodes.Nodes.Clear();
            DhcpFlagsNodes.Text = "Flags: 0x" + dhcp.Flags.ToString("X2");
            string unicast = (dhcp.Unicast == 0) ? "No Broadcast" : "Broadcast";

            DhcpFlagsNodes.Nodes.Add(dhcp.Unicast.ToString() + "... .... .... .... = " + unicast);
            DhcpFlagsNodes.Nodes.Add(".000 0000 0000 0000 = Reserved Flags");
            DhcpNode.Nodes.Add(DhcpFlagsNodes);

            DhcpNode.Nodes.Add("Client IP Address: " + dhcp.CiAddr);
            DhcpNode.Nodes.Add("Your IP Address: " + dhcp.YiAddr);
            DhcpNode.Nodes.Add("Server IP Address: " + dhcp.SiAddr);
            DhcpNode.Nodes.Add("Relay agent IP Address: " + dhcp.GiAddr);
            DhcpNode.Nodes.Add("Client Hard Address: " + dhcp.CHaddr);
            DhcpNode.Nodes.Add("Server host name: " + dhcp.SName);
            DhcpNode.Nodes.Add("Boot file name: " + dhcp.File);
            //选项字段
            if (!string.IsNullOrEmpty(dhcp.MagicCookie))
            {
                DhcpNode.Nodes.Add("Magic Cookie: " + dhcp.MagicCookie);
                foreach (var i in dhcp.Option)
                {
                    TreeNode tre = new TreeNode("Option: [Type= " + i.Type + " 0x" + ((ushort)i.Type).ToString("X2") + "] [Length= " + i.Length.ToString() + "]");
                    tre.Name = "DHCP_OP";
                    tre.Nodes.Add("Option Type: " + i.Type + " [0x" + ((ushort)i.Type).ToString("X2") + "]");
                    tre.Nodes.Add("Length: " + i.Length.ToString());
                    tre.Nodes.Add("Value: 0x" + i.value);

                    DhcpNode.Nodes.Add(tre);
                }
            }
            Tree.Nodes.Add(DhcpNode);
        }
Exemplo n.º 2
0
 /// <summary>
 /// 添加应用层协议
 /// </summary>
 /// <param name="payloadData">载荷数据</param>
 /// <param name="SourcePort">源端口</param>
 /// <param name="DestinationPort">目的端口</param>
 private void AppNode(byte[] payloadData, ushort SourcePort, ushort DestinationPort)
 {
     if (payloadData.Length == 0)
     {
         return;
     }
     AppsrcPort = SourcePort;
     AppdstPort = DestinationPort;
     //HTTP 80
     if (isAnalysProtocol(80))
     {
         HttpPacket http = new HttpPacket(payloadData);
         Http(http);
     }
     //smtp 25
     else if (isAnalysProtocol(25))
     {
         SmtpPacket smtp = new SmtpPacket(payloadData);
         SMTP(smtp);
     }
     //pop3 110
     else if (isAnalysProtocol(110))
     {
         Pop3Packet pop3 = new Pop3Packet(payloadData);
         POP3(pop3);
     }
     //DNS 53
     else if (isAnalysProtocol(53))
     {
         DnsPacket dns = new DnsPacket(payloadData);
         DNS(dns);
     }
     //ftp 21
     else if (isAnalysProtocol(21))
     {
         FtpPacket ftp = new FtpPacket(payloadData);
         FTP(ftp);
     }
     //DHCP 67 68
     else if (isAnalysProtocol(67) || isAnalysProtocol(68))
     {
         DhcpPackets dp = new DhcpPackets(payloadData);
         DHCP(dp);
     }
     else if (isAnalysProtocol(520))
     {
         RipPacket rp = new RipPacket(payloadData);
         RIP(rp);
     }
     //ssdp 1900
     else if (isAnalysProtocol(1900))
     {
         SSDPPacket ssdp = new SSDPPacket(payloadData);
         SSDP(ssdp);
     }
 }