/// заполняем данные в грид и в XML фаиле private void OnAddRowIP(byte[] byteData, int nReceived) { IPHeader ipHeader = new IPHeader(byteData, nReceived); countpackets++; // выбираем правило записи switch (ipHeader.ProtocolType) { case Protocol.TCP: TCPHeader tcpHeader = new TCPHeader(ipHeader.Data, ipHeader.MessageLength); // считываем из потока данные в xml XmlAddPacket(countpackets.ToString(), ipHeader.SourceAddress.ToString(), ipHeader.DestinationAddress.ToString(), ipHeader.Version, ipHeader.HeaderLength, ipHeader.DifferentiatedServices, ipHeader.TotalLength, ipHeader.Identification, ipHeader.Flags, ipHeader.FragmentationOffset, ipHeader.TTL, ipHeader.ProtocolType.ToString(), ipHeader.Checksum, "", tcpHeader.SourcePort, tcpHeader.DestinationPort, tcpHeader.SequenceNumber, tcpHeader.AcknowledgementNumber, tcpHeader.HeaderLength, tcpHeader.Flags, tcpHeader.WindowSize, tcpHeader.Checksum, tcpHeader.UrgentPointer, tcpHeader.Data); if (tcpHeader.DestinationPort == "53" || tcpHeader.SourcePort == "53") { // AddRowDNSProtocol RowDNSProtocol = new AddRowDNSProtocol(MakeDNS); // dgvParamProt.Invoke(RowDNSProtocol, new object[] { tcpHeader.Data, (int)tcpHeader.MessageLength }); } break; case Protocol.UDP: UDPHeader udpHeader = new UDPHeader(ipHeader.Data, (int)ipHeader.MessageLength); // считываем из потока данные в xml XmlAddPacket(countpackets.ToString(), ipHeader.SourceAddress.ToString(), ipHeader.DestinationAddress.ToString(), ipHeader.Version, ipHeader.HeaderLength, ipHeader.DifferentiatedServices, ipHeader.TotalLength, ipHeader.Identification, ipHeader.Flags, ipHeader.FragmentationOffset, ipHeader.TTL, ipHeader.ProtocolType.ToString(), ipHeader.Checksum, "", udpHeader.SourcePort, udpHeader.DestinationPort, udpHeader.Length, udpHeader.Checksum, udpHeader.Data); if (udpHeader.DestinationPort == "53" || udpHeader.SourcePort == "53") { // AddRowDNSProtocol RowDNSProtocol = new AddRowDNSProtocol(MakeDNS); // dgvParamProt.Invoke(RowDNSProtocol, new object[] { udpHeader.Data, Convert.ToInt32(udpHeader.Length) - 8 }); } break; case Protocol.Unknown: break; } AddPacketToGrid(); }
/// заполняем данные в грид и в XML фаиле private void OnAddRowIP(byte[] byteData, int nReceived) { IPHeader ipHeader = new IPHeader(byteData, nReceived); countpackets++; // выбираем правило записи switch (ipHeader.ProtocolType) { case Protocol.TCP: TCPHeader tcpHeader = new TCPHeader(ipHeader.Data, ipHeader.MessageLength); // считываем из потока данные в xml XmlAddPacket(countpackets.ToString(), ipHeader.SourceAddress.ToString(), ipHeader.DestinationAddress.ToString(), ipHeader.Version, ipHeader.HeaderLength, ipHeader.DifferentiatedServices, ipHeader.TotalLength, ipHeader.Identification, ipHeader.Flags, ipHeader.FragmentationOffset, ipHeader.TTL, ipHeader.ProtocolType.ToString(), ipHeader.Checksum, "", tcpHeader.SourcePort, tcpHeader.DestinationPort, tcpHeader.SequenceNumber, tcpHeader.AcknowledgementNumber, tcpHeader.HeaderLength, tcpHeader.Flags, tcpHeader.WindowSize, tcpHeader.Checksum, tcpHeader.UrgentPointer, tcpHeader.Data); if (tcpHeader.DestinationPort == "53" || tcpHeader.SourcePort == "53") { // AddRowDNSProtocol RowDNSProtocol = new AddRowDNSProtocol(MakeDNS); // dgvParamProt.Invoke(RowDNSProtocol, new object[] { tcpHeader.Data, (int)tcpHeader.MessageLength }); } break; case Protocol.UDP: UDPHeader udpHeader = new UDPHeader(ipHeader.Data,(int)ipHeader.MessageLength); // считываем из потока данные в xml XmlAddPacket(countpackets.ToString(), ipHeader.SourceAddress.ToString(), ipHeader.DestinationAddress.ToString(), ipHeader.Version, ipHeader.HeaderLength, ipHeader.DifferentiatedServices, ipHeader.TotalLength, ipHeader.Identification, ipHeader.Flags, ipHeader.FragmentationOffset, ipHeader.TTL, ipHeader.ProtocolType.ToString(), ipHeader.Checksum, "", udpHeader.SourcePort, udpHeader.DestinationPort, udpHeader.Length, udpHeader.Checksum, udpHeader.Data); if (udpHeader.DestinationPort == "53" || udpHeader.SourcePort == "53") { // AddRowDNSProtocol RowDNSProtocol = new AddRowDNSProtocol(MakeDNS); // dgvParamProt.Invoke(RowDNSProtocol, new object[] { udpHeader.Data, Convert.ToInt32(udpHeader.Length) - 8 }); } break; case Protocol.Unknown: break; } AddPacketToGrid(); }