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();
 }