예제 #1
0
파일: MForm.cs 프로젝트: linxon/dnsblc
        private void RunScan(string Address)
        {
            FileRenderClass FileRender = new FileRenderClass(BLFilename);

            this.BLS = FileRender.LoadBLS();    //  Загружаем список серверов

            countServers = this.BLS.Length;
            for (int i = 0; i < countServers; i++)
            {
                VerifyAddressClass IP = new VerifyAddressClass(Address, this.BLS[i].Trim());

                if (IP.isInit != false && IP.IPAddr.Valid && this.StopBtnStat == false)
                {
                    ListViewItem NewIp = new ListViewItem(IP.IPAddr.AsString);

                    // Формируем готовый список проверенных данных
                    string Listed;
                    if (IP.BlackList.IsListed)
                    {
                        Listed          = "Warning";
                        NewIp.ForeColor = Color.Red;
                        NewIp.SubItems.Add(Listed);
                        NewIp.SubItems.Add(IP.BlackList.VerifiedOnServer);
                        this.bads++;
                    }
                    else
                    {
                        Listed          = "OK";
                        NewIp.ForeColor = Color.Green;
                        NewIp.SubItems.Add(Listed);
                        NewIp.SubItems.Add(IP.BlackList.VerifiedOnServer);
                        this.goods++;
                    }

                    FileRenderClass SFileRender = new FileRenderClass(Address + "_" + RFilename);
                    SFileRender.SaveResult(RFileFolder, new string[] {
                        IP.IPAddr.AsString + " - " + Listed + " - " + IP.BlackList.VerifiedOnServer
                    }, true);

                    // Отправляем делегату информацию о результатов сканирования
                    if (InvokeRequired)
                    {
                        Invoke(
                            InfoUpdater,

                            NewIp,
                            countServers * 100,
                            i * 100,

                            "Всего: " + Convert.ToString(this.bads + this.goods),
                            "В черном списке: " + Convert.ToString(this.bads),
                            "Нейтральные: " + Convert.ToString(this.goods)
                            );
                    }

                    Application.DoEvents();
                }
                else
                {
                    break;
                }
            }

            // Маркуем конечные строки
            FileRenderClass RFileRender = new FileRenderClass(Address + "_" + RFilename);

            RFileRender.SaveResult(RFileFolder, new string[] {
                Environment.NewLine,
                bads + "/" + goods + "/" + (goods + bads),
                "DONE!",
            }, true);

            if (InvokeRequired)
            {
                Invoke(InfoReset);
            }
        }