private void OnNewPacket(PacketMonitor pm, Packet p) { if (_sinFiltro == true) { m_Packets.Add(p); m_PacketsSize += p.TotalLength; this.Invoke(new UpdatePacketList(OnUpdatePacketList), p); } else if(_filtroPorP == true) { if((p.Protocol.ToString() == "Tcp") && (Filters.CheckFilter(Filters.PortFilterList, p.SourcePort.ToString()) || Filters.CheckFilter(Filters.PortFilterList, p.DestinationPort.ToString()))) { m_Packets.Add(p); m_PacketsSize += p.TotalLength; this.Invoke(new UpdatePacketList(OnUpdatePacketList), p); } } else if (_filtroPorPIP == true) { if (((p.Protocol.ToString() == "Tcp") && (Filters.CheckFilter(Filters.PortFilterList, p.SourcePort.ToString()) || Filters.CheckFilter(Filters.PortFilterList, p.DestinationPort.ToString())) && (Filters.CheckFilter(Filters.PacketIDFilterList, p.SourceAddress.ToString()) || Filters.CheckFilter(Filters.PacketIDFilterList, p.DestinationAddress.ToString())))) { // add the new packet to the list m_Packets.Add(p); m_PacketsSize += p.TotalLength; this.Invoke(new UpdatePacketList(OnUpdatePacketList), p); //PacketList.Items.Add(new ListViewItem(new string[] { p.Time.ToString(), p.Protocol.ToString(), p.Source, p.Destination, p.TotalLength.ToString() })); //StatusBar.Text = string.Format("Intercepted {0} packet(s) [{1} bytes]", m_Packets.Count, m_PacketsSize); //UpdatePacketList } } }
private void Initialize() { // get all interfaces on this computer and list them IPAddress[] hosts = Dns.Resolve(Dns.GetHostName()).AddressList; if (hosts.Length == 0) throw new NotSupportedException("Esta PC no tiene Interfaces de RED instaladas..!"); for(int i = 0; i < hosts.Length; i++) { MonitorMenuItem.MenuItems.Add(hosts[i].ToString(), new EventHandler(this.OnHostsClick)); HostsMenu.MenuItems.Add(hosts[i].ToString(), new EventHandler(this.OnHostsClick)); } m_PacketMonitors = new PacketMonitor[HostsMenu.MenuItems.Count]; for(int i = 0; i < m_PacketMonitors.Length; i++) { m_PacketMonitors[i] = new PacketMonitor(hosts[i]); m_PacketMonitors[i].NewPacket += new NewPacketEventHandler(this.OnNewPacket); } m_Packets = new ArrayList(); }