void WatchIP_ScriptWarnings(object sender, ScriptWarningsEventArgs e) { ScriptWarnings = true; BeginInvoke((MethodInvoker) delegate { TrayIcons.TrayIcon(CurrentIcon, niMain, ScriptWarnings); niMain.Text = CommonFunctions.CutTipText("Script warning: " + e.IP + " " + e.ScriptMessage); niMain.ShowBalloonTip(5000, "Script warning!", e.ScriptMessage, ToolTipIcon.Warning); }); }
//получение основной информации //проверка на попадание в стоп-лист //предупреждения скрипта private void CheckIP(DataSet ds) { //List для сбора всех обнаруженных IP для определения смены IP List <string> NewIPInfo = new List <string>(); bool stoplist = false; bool InREMOTE_ADDR = false; bool InHTTP_HEADERS = false; bool InOTHER = false; CountyAlarmEventArgs e = new CountyAlarmEventArgs(); foreach (DataRow dr in ds.Tables["IP"].Rows) { string buf = ""; //проверка на предупреждения скрипта if (dr["status"].ToString().Trim() != "OK") { ScriptWarningsEventArgs swea = new ScriptWarningsEventArgs(); swea.IP = dr["ip"].ToString().Trim(); swea.ScriptMessage = dr["status"].ToString().Trim(); if (swea.ScriptMessage == string.Empty) { swea.ScriptMessage = "Unknow Warning, check script!"; } if (ScriptWarnings != null) { ScriptWarnings(this, swea); } } //проверка на попадание в стоп-лист если предупреждения не отключены. if (InStopList(dr["country_iso"].ToString()) && (appsettings.ComAlarmLevel != IPAlarmLevel.None)) { switch (dr["field"].ToString().Trim()) { case "REMOTE_ADDR": { InREMOTE_ADDR = true; }; break; case "OTHER": { InOTHER = true; }; break; default: { InHTTP_HEADERS = true; }; break; } e.InREMOTE_ADDR = InREMOTE_ADDR; e.InHTTP_HEADERS = InHTTP_HEADERS; e.InOTHER = InOTHER; e.Country = dr["country_name_en"].ToString().Trim(); e.IP = dr["ip"].ToString().Trim(); e.ISOCode = dr["country_iso"].ToString().Trim(); stoplist = true; } //инфо для краткой подсказки и обнаружения новых IP buf = buf + dr["ip"].ToString() + " " + dr["country_name_en"].ToString() + " (" + dr["country_iso"].ToString() + ")"; NewIPInfo.Add(buf); } IPShortInfo = string.Join("\n", NewIPInfo.ToArray()); if (NewIPDetect(NewIPInfo)) { if (NewIP != null) { NewIP(this); } } if (stoplist) { if (CountryAlarm != null) { CountryAlarm(this, e); } } else { if (IPOK != null) { IPOK(this); } } }