コード例 #1
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);
     }
 }
コード例 #2
0
        private void RIP(RipPacket rip)
        {
            if (rip == null)
            {
                return;
            }
            if (RipNode == null)
            {
                RipNode = CreatNode("RIP", 7);
            }
            RipNode.Nodes.Clear();

            RipNode.Nodes.Add("Command: " + rip.Command + " [0x" + ((ushort)rip.Command).ToString("X2") + "]");
            string verStr = (rip.Version == 1) ? "RIPv1" : "RIPv2";

            RipNode.Nodes.Add("Version: " + verStr + " (" + rip.Version + ")");
            RipNode.Nodes.Add("0000 0000 0000 0000 = Reserved Bits");
            if (rip.RouterItem.Count > 0)
            {
                foreach (var i in rip.RouterItem)
                {
                    string   addressFamilyStr = (i.AddressFamily == 2) ? "IPv4 (" + i.AddressFamily + ")" : i.AddressFamily.ToString();
                    TreeNode tp = new TreeNode("[Family: " + addressFamilyStr + "] [Address: " + i.IPaddress + "] [Metric: " + i.Metric + "]");
                    tp.Nodes.Add("Address Family: " + addressFamilyStr);
                    string routerTag = (rip.Version == 1) ? "0000 0000 0000 0000 = Reserved Bits" : "Router Tag: " + i.RouteTag;
                    tp.Nodes.Add(routerTag);
                    tp.Nodes.Add("IP Address: " + i.IPaddress);
                    string mask = (rip.Version == 1) ? "0000 0000 0000 0000 0000 0000 0000 0000 = Reserved Bits" : "Net Mask: " + i.NetMask;
                    tp.Nodes.Add(mask);
                    string nextHops = (rip.Version == 1) ? "0000 0000 0000 0000 0000 0000 0000 0000 = Reserved Bits" : "Next Hops: " + i.NextHop;
                    tp.Nodes.Add(nextHops);
                    tp.Nodes.Add("Metric: " + i.Metric);

                    RipNode.Nodes.Add(tp);
                }
            }
            Tree.Nodes.Add(RipNode);
        }