Пример #1
0
        static void Main(string[] args)
        {
            // You can only create raw sockets with elevated privileges
            if (!IsElevated())
            {
                Console.WriteLine("Please run with elevated prilileges");
                Environment.Exit(1);
            }

            var appOptions = ParseCommandLine(args);

            if (appOptions.ShowHelp)
            {
                ShowHelp(appOptions);
                Environment.Exit(0);
            }

            var nics = NetworkInterfaceInfo.GetInterfaces();

            if ((!appOptions.InterfaceId.HasValue) ||
                (appOptions.InterfaceId > nics.Count - 1) ||
                (appOptions.InterfaceId < 0))
            {
                Console.WriteLine("Invalid interface ID");
                ShowHelp(appOptions);
                Environment.Exit(3);
            }

            var filters = appOptions.BuildFilters();
            var nic     = nics[appOptions.InterfaceId.Value];

            // Start capturing packets
            var output  = new PcapNgFileOutput(nic, appOptions.Filename);
            var sniffer = new SocketSniffer(nic, filters, output);

            sniffer.Start();

            Console.WriteLine();
            Console.WriteLine("Capturing on interface {0} ({1})", nic.Name, nic.IPAddress);
            Console.WriteLine("Saving to file {0}", appOptions.Filename);
            Console.WriteLine("Press CTRL+C to stop");
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();

            // Shutdown gracefully on CTRL+C
            Console.CancelKeyPress += ConsoleOnCancelKeyPress;

            while (!isStopping)
            {
                Console.SetCursorPosition(0, Console.CursorTop - 2);
                Console.WriteLine("Packets Observed: {0}", sniffer.PacketsObserved);
                Console.WriteLine("Packets Captured: {0}", sniffer.PacketsCaptured);

                Thread.Sleep(200);
            }

            sniffer.Stop();
        }
Пример #2
0
        static void Main(string[] args)
        {
            // You can only create raw sockets with elevated privileges
            if (!IsElevated())
            {
                Console.WriteLine("Please run with elevated prilileges");
                Environment.Exit(1);
            }

            var appOptions = ParseCommandLine(args);

            if (appOptions.ShowHelp)
            {
                ShowHelp(appOptions);
                Environment.Exit(0);
            }

            var nics = NetworkInterfaceInfo.GetInterfaces();

            if ((!appOptions.InterfaceId.HasValue) ||
                (appOptions.InterfaceId > nics.Count - 1) ||
                (appOptions.InterfaceId < 0))
            {
                Console.WriteLine("Invalid interface ID");
                ShowHelp(appOptions);
                Environment.Exit(3);
            }

            var filters = appOptions.BuildFilters();
            var nic = nics[appOptions.InterfaceId.Value];

            // Start capturing packets
            var output = new PcapNgFileOutput(nic, appOptions.Filename);
            var sniffer = new SocketSniffer(nic, filters, output);
            sniffer.Start();

            Console.WriteLine();
            Console.WriteLine("Capturing on interface {0} ({1})", nic.Name, nic.IPAddress);
            Console.WriteLine("Saving to file {0}", appOptions.Filename);
            Console.WriteLine("Press CTRL+C to stop");
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();

            // Shutdown gracefully on CTRL+C
            Console.CancelKeyPress += ConsoleOnCancelKeyPress;

            while (!isStopping)
            {
                Console.SetCursorPosition(0, Console.CursorTop - 2);
                Console.WriteLine("Packets Observed: {0}", sniffer.PacketsObserved);
                Console.WriteLine("Packets Captured: {0}", sniffer.PacketsCaptured);

                Thread.Sleep(200);
            }

            sniffer.Stop();
        }