示例#1
0
        internal static BanResults CheckHostBan(string hostname)
        {
            if (Backend == null || hostname == string.Empty)
            {
                return(BanResults.None);
            }

            string mask = string.Empty;

            foreach (string subnet in hostname.Split(".".ToCharArray()))
            {
                if (mask == string.Empty)
                {
                    mask = subnet;
                }
                else
                {
                    mask += "." + subnet;
                }

                BanResults results = ResultsFromRecord(Backend.FindHostMaskBan(mask));
                if (results != BanResults.None)
                {
                    return(results);
                }
            }

            return(BanResults.None);
        }
示例#2
0
        internal static BanResults CheckAddressBan(string address)
        {
            if (Backend == null || address == string.Empty)
            {
                return(BanResults.None);
            }

            if (address.Contains(":"))
            {
                string mask = string.Empty;
                foreach (string subnet in address.Split(":".ToCharArray()))
                {
                    if (mask == string.Empty)
                    {
                        mask = subnet;
                    }
                    else
                    {
                        mask += ":" + subnet;
                    }

                    BanResults results = ResultsFromRecord(Backend.FindIPAddressBan(mask));
                    if (results != BanResults.None)
                    {
                        return(results);
                    }
                }
            }
            else
            {
                string mask = string.Empty;
                foreach (string subnet in address.Split(".".ToCharArray()))
                {
                    if (mask == string.Empty)
                    {
                        mask = subnet;
                    }
                    else
                    {
                        mask += "." + subnet;
                    }

                    BanResults results = ResultsFromRecord(Backend.FindIPAddressBan(mask));
                    if (results != BanResults.None)
                    {
                        return(results);
                    }
                }
            }


            return(BanResults.None);
        }
示例#3
0
        private static BanResults ResultsFromRecord(Databases.BanRecord record)
        {
            if (record == null)
            {
                return(BanResults.None);
            }

            BanResults results = new BanResults();

            results.ID     = record.ID;
            results.Reason = record.Reason;
            results.Active = true;

            return(results);
        }