コード例 #1
0
        protected void BlockCustomerIP_Click(object sender, ImageClickEventArgs e)
        {
            BannedIP block = new BannedIP();

            block.IPRangeStart = BannedIP.ConvertToNumber(_order.RemoteIP);
            block.IPRangeEnd   = block.IPRangeStart;
            block.Comment      = "Order #" + _order.OrderNumber.ToString();
            block.Save();
        }
コード例 #2
0
        private bool IsBannedIP(string ip)
        {
            try
            {
                string BannedIPsFileName = StringUtils.PathCombine(ProcessUtils.StartupPath, "config", "banned-ips.txt");
                if (File.Exists(BannedIPsFileName))
                {
                    string[] ConnectionOctets = ip.Split('.');
                    if (ConnectionOctets.Length == 4)
                    {
                        string[] BannedIPs = FileUtils.FileReadAllLines(BannedIPsFileName);
                        foreach (string BannedIP in BannedIPs)
                        {
                            if (BannedIP.StartsWith(";"))
                            {
                                continue;
                            }

                            string[] BannedOctets = BannedIP.Split('.');
                            if (BannedOctets.Length == 4)
                            {
                                bool Match = true;
                                for (int i = 0; i < 4; i++)
                                {
                                    if ((BannedOctets[i] == "*") || (BannedOctets[i] == ConnectionOctets[i]))
                                    {
                                        // We still have a match
                                        continue;
                                    }
                                    else
                                    {
                                        // No longer have a match
                                        Match = false;
                                        break;
                                    }
                                }

                                // If we still have a match after the loop, it's a banned IP
                                if (Match)
                                {
                                    return(true);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                RaiseExceptionEvent("Unable to validate client IP against banned-ips.txt", ex);
            }

            // If we get here, it's an OK IP
            return(false);
        }
コード例 #3
0
        public bool CreateBannedIP(BannedIP bannedIP)
        {
            outpostwarsEntities entities = new outpostwarsEntities();

            try
            {
                // Add tew New Player into the player Collection
                entities.BannedIPs.Add(bannedIP);
                // Save changes
                return(entities.SaveChanges() == 1);
            }
            catch (DbEntityValidationException ex)
            {
                LogCriticalError(ex);
            }
            return(false);
        }
コード例 #4
0
 public static BannedIP CreateBannedIP(int id)
 {
     BannedIP bannedIP = new BannedIP();
     bannedIP.ID = id;
     return bannedIP;
 }
コード例 #5
0
 public void AddToBannedIP(BannedIP bannedIP)
 {
     base.AddObject("BannedIP", bannedIP);
 }
コード例 #6
0
        protected void AddButton_Click(object sender, EventArgs e)
        {
            //validate start range
            string startIP = AddIPRangeStart.Text;

            if (!Regex.IsMatch(startIP, "^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$"))
            {
                CustomValidator invalidIP = new CustomValidator();
                invalidIP.IsValid      = false;
                invalidIP.Text         = "*";
                invalidIP.ErrorMessage = "Start IP is not valid.";
                AddIPRangeStart.Parent.Controls.Add(invalidIP);
                return;
            }

            //validate end range
            string endIP = AddIPRangeEnd.Text;

            if (string.IsNullOrEmpty(endIP))
            {
                endIP = startIP;
            }
            if (!Regex.IsMatch(endIP, "^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$"))
            {
                CustomValidator invalidIP = new CustomValidator();
                invalidIP.IsValid      = false;
                invalidIP.Text         = "*";
                invalidIP.ErrorMessage = "EndIP is not valid.";
                AddIPRangeEnd.Parent.Controls.Add(invalidIP);
                return;
            }

            BannedIP block = new BannedIP();

            block.IPRangeStart = BannedIP.ConvertToNumber(startIP);
            block.IPRangeEnd   = BannedIP.ConvertToNumber(endIP);
            //VALIDATE NUMBERS ARE IN CORRECT ORDER, SWAP IF NEEDED
            if (block.IPRangeStart > block.IPRangeEnd)
            {
                long temp = block.IPRangeStart;
                block.IPRangeStart = block.IPRangeEnd;
                block.IPRangeEnd   = temp;
            }
            //VALIDATE MY IP ISNT IN RANGE
            if (block.IsInRange(Request.UserHostAddress))
            {
                CustomValidator invalidIP = new CustomValidator();
                invalidIP.IsValid      = false;
                invalidIP.Text         = "*";
                invalidIP.ErrorMessage = "You cannot block a range that includes your own IP!";
                AddIPRangeStart.Parent.Controls.Add(invalidIP);
                return;
            }

            //SAVE RANGE
            block.Comment = AddComment.Text;
            block.Save();

            //RESET FORM
            AddedMessage.Visible = true;
            AddIPRangeStart.Text = string.Empty;
            AddIPRangeEnd.Text   = string.Empty;
            AddComment.Text      = string.Empty;

            //REBIND GRID
            BannedIPGrid.DataBind();
            GridAjax.Update();
        }