Exemplo n.º 1
0
 private string[] MakeIP(IPHeader ipHeader, string ProType)
 {
     string[] IpNode = new string[] { "IP", "Ver: " + ipHeader.Version,
                                      "Header Length: " + ipHeader.HeaderLength,
                                      "Differntiated Services: " + ipHeader.DifferentiatedServices,
                                      "Total Length: " + ipHeader.TotalLength,
                                      "Identification: " + ipHeader.Identification,
                                      "Flags: " + ipHeader.Flags,
                                      "Fragmentation Offset: " + ipHeader.FragmentationOffset,
                                      "Time to live: " + ipHeader.TTL, "Protocol: " + ProType,
                                      "Checksum: " + ipHeader.Checksum,
                                      "Source: " + ipHeader.SourceAddress.ToString(),
                                      "Destination: " + ipHeader.DestinationAddress.ToString() };
     return(IpNode);
 }
Exemplo n.º 2
0
        private void ParseData(byte[] byteData, int nReceived)
        {
            if (PacketNum == Convert.ToInt32(this.tscbNum.Text))
            {
                PacketNum = 1;
                this.lvReceivedPackets.Items.Clear();
            }
            IPHeader ipHeader = new IPHeader(byteData, nReceived);

            string[] lvStrArr = new string[] { PacketNum.ToString(), DateTime.Now.ToString(),
                     ipHeader.SourceAddress.ToString(), ipHeader.DestinationAddress.ToString(),
                     ipHeader.ProtocolType.ToString(), ipHeader.TotalLength };

            string[] IpStrArr = MakeIP(ipHeader, ipHeader.ProtocolType.ToString());

            string[] MergeIPArr = new string[lvStrArr.Length + IpStrArr.Length];
            Array.Copy(lvStrArr, 0, MergeIPArr, 0, lvStrArr.Length);
            Array.Copy(IpStrArr, 0, MergeIPArr, lvStrArr.Length, IpStrArr.Length);

            string[] MergeTCP = null;
            string[] MergeUDP = null;
            string[] MergeAll = null;

            switch (ipHeader.ProtocolType) // fixed
            {
            case Protocol.TCP:
                TCPHeader tcpHeader = new TCPHeader(ipHeader.Data,
                                                    ipHeader.MessageLength);
                MergeTCP = MakeTCP(tcpHeader);
                MergeAll = new string[MergeIPArr.Length + MergeTCP.Length];
                Array.Copy(MergeIPArr, 0, MergeAll, 0, MergeIPArr.Length);
                Array.Copy(MergeTCP, 0, MergeAll, MergeIPArr.Length, MergeTCP.Length);
                break;

            case Protocol.UDP:
                UDPHeader udpHeader = new UDPHeader(ipHeader.Data,
                                                    (int)ipHeader.MessageLength);
                MergeUDP = MakeUDP(udpHeader);
                MergeAll = new string[MergeIPArr.Length + MergeUDP.Length];
                Array.Copy(MergeIPArr, 0, MergeAll, 0, MergeIPArr.Length);
                Array.Copy(MergeUDP, 0, MergeAll, MergeIPArr.Length, MergeUDP.Length);
                break;

            case Protocol.ICMP:
                MergeAll = MergeIPArr;
                break;

            case Protocol.IGMP:
                MergeAll = MergeIPArr;
                break;

            case Protocol.IGRP:
                MergeAll = MergeIPArr;
                break;

            case Protocol.AH:
                MergeAll = MergeIPArr;
                break;

            case Protocol.EIGRP:
                MergeAll = MergeIPArr;
                break;

            case Protocol.ESP:
                MergeAll = MergeIPArr;
                break;

            case Protocol.GRE:
                MergeAll = MergeIPArr;
                break;

            case Protocol.L2TP:
                MergeAll = MergeIPArr;
                break;

            case Protocol.OSPF:
                MergeAll = MergeIPArr;
                break;

            case Protocol.SKIP:
                MergeAll = MergeIPArr;
                break;

            case Protocol.Unknown:
                MergeAll = MergeIPArr;
                break;
            }
            var lvt = new ListViewItem(MergeAll);

            this.lvReceivedPackets.Items.Add(lvt);
            PacketNum++;
        }