Example #1
0
File: Form1.cs Project: berak/cs
        private void Form1_Load(object sender, EventArgs e)
        {
            scanPorts = new ScanPortData();
            scanPorts.Ip = "85.183.54.25";
            scanPorts.From = 1;
            scanPorts.To = 1024;
            propertyGrid1.SelectedObject = scanPorts;

            scanIps = new ScanIpData();
            scanIps.Start = "85.183.54.0";
            scanIps.Stop = "85.183.54.50";
            scanIps.Port = 80;
            propertyGrid2.SelectedObject = scanIps;

            prefs = new PrefsData();
            prefs.Timeout = 5000;
            prefs.Check401 = true;
            prefs.AutoBrowse = true;
            prefs.Browser = "firefox";
            propertyGrid3.SelectedObject = prefs;
            prefs.DoLog = true;

            unpickle();
        }
Example #2
0
File: Form1.cs Project: berak/cs
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            scanPorts = (ScanPortData)propertyGrid1.SelectedObject;
            prefs  = (PrefsData)propertyGrid3.SelectedObject;
            int timeout = prefs.Timeout;

            MethodInvoker ScanStart = delegate
            {
                scannedPorts.Items.Clear();
                progressBar1.Maximum = scanPorts.To - scanPorts.From;
                progressBar1.Value = 0;
            };
            Invoke(ScanStart);

            PortScanner[] scanner = new PortScanner[16];
            ManualResetEvent[] reset = new ManualResetEvent[16];
            for (int i = 0; i < 16; i++)
            {
                scanner[i] = new PortScanner(scanPorts.Ip, 0);
                scanner[i].timeout = prefs.timeout;
            }

            while (scanPorts.From < scanPorts.To && ((buttonStart.Text == "Stop")))
            {
                for (int i = 0; i < 16; i++)
                {
                    scanner[i].PORT = scanPorts.From++;
                    reset[i] = new ManualResetEvent(false);
                    ThreadPool.QueueUserWorkItem(scanner[i].Run, reset[i]);
                }
                WaitHandle.WaitAll(reset, timeout);
                for (int i = 0; i < 16; i++)
                {
                    bool hit = (scanner[i].result > 0);
                    MethodInvoker ScanUpdate = delegate
                    {
                        int p = scanner[i].PORT;
                        progressBar1.Increment(1);
                        status.Text = p + "    " + ports[p];
                        scanPorts.From = p;
                        propertyGrid1.SelectedObject = scanPorts;
                        string name = p + "\t" + ports[p];
                        if ((hit) && (!scannedPorts.Items.Contains(name)))
                            scannedPorts.Items.Add(name);
                    };
                    Invoke(ScanUpdate);
                }
            }
            buttonStart.Text = "Start";
            //int ntw = 0;
            //int ncp = 0;
            //ThreadPool.GetAvailableThreads(out ntw, out ncp);
            //Thread.Sleep(600);
        }