public void FilterPackets(string filterText) { var filters = filterText.Split(',', ';').ToList(); _destinationFilter = _sourceFilter = _protocolFilter = string.Empty; foreach (var filter in filters) { if (filter.Contains("dest:")) { _destinationFilter = new string(filter.Skip(filter.IndexOf(':') + 1).ToArray()); } if (filter.Contains("source:")) { _sourceFilter = new string(filter.Skip(filter.IndexOf(':') + 1).ToArray()); } if (filter.Contains("protocol:")) { _protocolFilter = new string(filter.Skip(filter.IndexOf(':') + 1).ToArray()); } } FilteredPackets.Clear(); foreach (var p in Packets) { if (p.Destination.Contains(_destinationFilter) && p.Source.Contains(_sourceFilter) && p.Protocol.ToString().Contains(_protocolFilter)) { FilteredPackets.Add(p); } } }
private void Filter() { if (Packets == null || Packets.Count < 1) { return; } //Filter Type IEnumerable <Packet> filteredList = null; FilteredPackets.Clear(); if (SelectedPacketTypeIndex == 1) { filteredList = from packet in Packets where packet.Type == PacketType.Client select packet; } else if (SelectedPacketTypeIndex == 2) { filteredList = from packet in Packets where packet.Type == PacketType.Server select packet; } else { filteredList = from packet in Packets select packet; } //Filter OpCode if (_filterOpCode > 0) { filteredList = from packet in filteredList where packet.OpCode == _filterOpCode select packet; } FilteredPackets = new ObservableCollection <Packet>(filteredList); }
public void AddToPackets(PacketType type, byte[] data) { var packet = new Packet(type, data); Application.Current.Dispatcher.Invoke(delegate { Packets.Add(packet); }); var filterType = (PacketType)(SelectedPacketTypeIndex - 1); if (filterType == type || SelectedPacketTypeIndex == 0) { if (_filterOpCode > 0) { if (_filterOpCode == packet.OpCode) { Application.Current.Dispatcher.Invoke(delegate { FilteredPackets.Add(packet); }); } } else { Application.Current.Dispatcher.Invoke(delegate { FilteredPackets.Add(packet); }); } } }
private void Remove() { if (Packets.Contains(SelectedPacket)) { Packets.Remove(SelectedPacket); } if (FilteredPackets.Contains(SelectedPacket)) { FilteredPackets.Remove(SelectedPacket); } }
public async Task StartSniff() { while (true) { var p = await _sniffer.SniffAsync(); Packets.Add(p); if (p.Destination.Contains(_destinationFilter) && p.Source.Contains(_sourceFilter) && p.Protocol.ToString().Contains(_protocolFilter)) { FilteredPackets.Add(p); } } }
private void Clear() { Packets.Clear(); FilteredPackets.Clear(); }