Discuz.Forum/Ips.cs

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Text;

using Discuz.Data;
using Discuz.Entity;
using System.Data;
using Discuz.Common;
using Discuz.Common.Generic;

namespace Discuz.Forum
{
    public class Ips
    {
        /// <summary>
        /// 添加被禁止的ip
        /// </summary>
        /// <param name="ip1">ip段</param>
        /// <param name="ip2">ip段</param>
        /// <param name="ip3">ip段</param>
        /// <param name="ip4">ip段</param>
        /// <param name="username">添加人</param>
        /// <param name="deteline">起始时间</param>
        /// <param name="expiration">过期时间</param>
        public static void AddBannedIp(string ipkey, Double deteline, string username)
        {
            string[] ip = ipkey.Split('.');
            deteline = deteline == 0 ? 1 : Math.Round(deteline);

            if ((Utils.StrToInt(ip[0], 0) < 255 || Utils.StrToInt(ip[1], 0) < 255 || Utils.StrToInt(ip[2], 0) < 255 || Utils.StrToInt(ip[3], 0) < 255) && (ip[0] != "0" && ip[1] != "0" && ip[2] != "0" && ip[3] != "0"))
            {
                IpInfo info = new IpInfo();
                info.Ip1 = TypeConverter.StrToInt(ip[0]);
                info.Ip2 = TypeConverter.StrToInt(ip[1], 0);
                info.Ip3 = TypeConverter.StrToInt(ip[2], 0);
                info.Ip4 = TypeConverter.StrToInt(ip[3], 0);
                info.Username = username;
                info.Dateline = DateTime.Now.ToShortDateString();
                info.Expiration = DateTime.Now.AddDays(deteline).ToString("yyyy-MM-dd"); ;
                Discuz.Data.Ips.AddBannedIp(info);
            }
        }

        /// <summary>
        /// 获得被禁止ip列表
        /// </summary>
        /// <returns></returns>
        public static List<IpInfo> GetBannedIpList()
        {
            List<IpInfo> ipInfoList = Discuz.Data.Ips.GetBannedIpList();

            foreach (IpInfo info in ipInfoList)
            {
                info.Location = GetLocation(info);
            }
            return ipInfoList;
        }

        private static string GetLocation(IpInfo info)
        { 
            string ip = string.Format("{0}.{1}.{2}.{3}", info.Ip1, info.Ip2, info.Ip3, info.Ip4);
后面还有 45 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。