/// <summary>
        ///		Create a new ping manager. This class will handle sending and recieving of
        ///		a single ping packet, including matching up the correct reply and calculating
        ///		the round trip time.
        /// </summary>
        /// <param name="networkInterface">
        ///		The interface to send the ping packet on.
        ///	</param>
        public IcmpPingManager(IPAddress networkInterface)
        {
            m_socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, 1);

            m_sniffer.NewPacket += new NewPacketHandler(NewPacket);
            m_sniffer.StartListening(new IPEndPoint(networkInterface, 0), SnifferModeType.Asynchronous, ProtocolType.Icmp);
            m_timer.Elapsed   += new ElapsedEventHandler(TimeOut);
            m_networkInterface = networkInterface;
        }
        /// <summary>
        ///		Create a new TCP SYN scanner
        /// </summary>
        /// <param name="networkInterface">
        ///		The local network interface to use.
        ///	</param>
        public TcpSynScanner(IPEndPoint networkInterface)
        {
            m_socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, 1);

            m_sniffer.NewPacket += new NewPacketHandler(NewPacket);
            m_sniffer.StartListening(new IPEndPoint(networkInterface.Address, 0), SnifferModeType.Asynchronous, ProtocolType.IP);
            m_timeoutTimer.Elapsed += new ElapsedEventHandler(TimeOut);
            m_localEndPoint         = networkInterface;
            m_timeoutTimer.Interval = 1000.0;
        }