示例#1
0
        public void AddNewIp(int iD, string ipPurpose, bool status, string comment, string ipSourse = null, string webSite = null)
        {
            IpOrWebSite ipOrWebSite = null;

            if (ipSourse != null && ipSourse != "")
            {
                ipOrWebSite           = new IpOrWebSite();
                ipOrWebSite.ID        = iD;
                ipOrWebSite.IpSourse  = ipSourse;
                ipOrWebSite.IpPurpose = ipPurpose;
                ipOrWebSite.Status    = status;
                ipOrWebSite.Comment   = comment;
                ipOrWebSites.Add(ipOrWebSite);
            }
            if (webSite != null && webSite != "")
            {
                IPHostEntry entry = Dns.GetHostEntry(webSite.Replace("http://", ""));
                foreach (var addres in entry.AddressList)
                {
                    ipOrWebSite           = new IpOrWebSite();
                    ipOrWebSite.ID        = iD;
                    ipOrWebSite.IpSourse  = addres.ToString();
                    ipOrWebSite.IpPurpose = ipPurpose;
                    ipOrWebSite.Status    = status;
                    ipOrWebSite.Comment   = comment;
                    ipOrWebSites.Add(ipOrWebSite);
                }
            }
            File.WriteAllText("Ip.txt", JsonConvert.SerializeObject(ipOrWebSites));
        }
示例#2
0
        public static void AddNewIp(string ipSourse)
        {
            IpOrWebSite ipOrWebSite = null;

            if (ipSourse != null && ipSourse != "")
            {
                ipOrWebSite           = new IpOrWebSite();
                ipOrWebSite.ID        = new Random().Next(100, 10000);
                ipOrWebSite.IpSourse  = ipSourse;
                ipOrWebSite.IpPurpose = "";
                ipOrWebSite.Status    = false;
                ipOrWebSite.Comment   = "Many requests";
                ipOrWebSites.Add(ipOrWebSite);
            }
            File.WriteAllText("Ip.txt", JsonConvert.SerializeObject(ipOrWebSites));
        }
示例#3
0
        private void Process(object o)
        {
            string             responseSt   = "";
            List <IpOrWebSite> ipOrWebSites = ManagerDAO.GetIpOrWebSites();
            var context = o as HttpListenerContext;
            HttpListenerResponse response = context.Response;
            HttpListenerRequest  request  = context.Request;
            string      ipReqvesr         = request.RemoteEndPoint.Address.ToString();
            IpOrWebSite ipOrWebSite       = ipOrWebSites.FirstOrDefault(ip => ip.IpSourse == ipReqvesr);

            if (ipOrWebSite != null)
            {
                if (ipOrWebSite.Status)
                {
                    responseSt = "Ok";
                }
                else
                {
                    responseSt = "Ban";
                }
            }
            else
            {
                responseSt = "Ok";
                IPChecked iPChecked = iPCheckeds.FirstOrDefault(ip => ip.Ip == ipReqvesr);
                if (iPChecked != null)
                {
                    iPChecked.CountReqvest++;
                }
                else
                {
                    TimerCallback tm = new TimerCallback(CheckIp);
                    iPChecked = new IPChecked();
                    iPChecked.CountReqvest = 1;
                    iPChecked.Ip           = ipReqvesr;
                    iPChecked.timer        = new Timer(tm, iPChecked, 1000, Timeout.Infinite);
                    iPCheckeds.Add(iPChecked);
                }
            }
            Loger.WriteLog("Info", "Process", DateTime.Now.ToLongDateString(), ipReqvesr, responseSt, "Reqvest");
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseSt);
            response.ContentLength64 = buffer.Length;
            Stream output = response.OutputStream;

            output.Write(buffer, 0, buffer.Length);
            output.Close();
        }