コード例 #1
0
ファイル: Form1.cs プロジェクト: tolik-punkoff/ip-informer
        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);
            });
        }
コード例 #2
0
        //получение основной информации
        //проверка на попадание в стоп-лист
        //предупреждения скрипта
        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);
                }
            }
        }