private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { try { cloudflareLogHandleSercie.InitQueue(startTime, endTime); cloudflareLogHandleSercie.TaskStart(); CloudflareLogReport cloudflareLogReport = cloudflareLogHandleSercie.GetCloudflareLogReport(); if (this.InvokeRequired) { this.Invoke(new Action(() => { button1.Enabled = true; var order = cloudflareLogReport.CloudflareLogReportItems.Where(a => a.Ban).OrderByDescending(a => a.Count).ToArray(); dataGridViewReport.DataSource = order; })); } else { button1.Enabled = true; } } catch (Exception ex) { logger.Error(ex.Message); } }
private void doWork() { do { try { cloudflareLogHandleSercie.InitQueue(startTime, endTime); cloudflareLogHandleSercie.TaskStart(); CloudflareLogReport cloudflareLogReport = cloudflareLogHandleSercie.GetCloudflareLogReport(); CloudflareLogs = cloudflareLogHandleSercie.GetCloudflareLogs(); if (this.InvokeRequired) { this.Invoke(new Action(() => { button1.Enabled = true; var order = cloudflareLogReport?.CloudflareLogReportItems?.Where(a => a.Ban).OrderByDescending(a => a.Count).ToArray(); cloudflareLogReportItems = order; List <string> filterStringList = new List <string>() { "all" }; filterStringList.AddRange(cloudflareLogReportItems.Select(a => a.ClientRequestHost).Distinct()); comboBoxFilter.DataSource = filterStringList; dataGridView1.DataSource = order; dataGridView1.Columns[1].Width = 175; dataGridView1.Columns[2].Width = 500; dataGridView1.Refresh(); labelTotal.Text = string.Format("total:{0}", order.Count()); })); } else { button1.Enabled = true; } if (autoBan == true) { List <string> ips = new List <string>(); var items = cloudflareLogReport?.CloudflareLogReportItems?.Where(a => a.Ban).OrderByDescending(a => a.Count).ToArray(); if (items != null) { foreach (CloudflareLogReportItem item in items) { if (item.Ban) { ips.Add(item.ClientIP); } } } comment = textBoxComment.Text; if (string.IsNullOrWhiteSpace(comment)) { MessageBox.Show("comment is required.", "warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } cloudflareLogHandleSercie.BanIps(ips, comment); } if (autoRun == true) { //去最近5分钟进行重新的分析 if (this.InvokeRequired) { this.Invoke(new Action(() => { DateTime now = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:00")); dateTimePickerStart.Value = now.AddMinutes(-10); dateTimePickerEnd.Value = now.AddMinutes(-5); startTime = dateTimePickerStart.Value; endTime = dateTimePickerEnd.Value; })); } } } catch (Exception ex) { logger.Error(ex.Message); } }while (autoRun); }