/// <summary>
        /// Return if the Player is ip blacklisted.
        /// </summary>
        /// <param name="IPAddress">IPAddress to check.</param>
        /// <returns></returns>
        public static bool IsIPBlackListed(this string IPAddress)
        {
            if (Core.Setting.IPBlackList)
            {
                IPBlackList IPBlackList = IPAddress.GetIPBlackList();

                if (IPBlackList != null)
                {
                    if (IPBlackList.Duration == -1 || DateTime.Now < IPBlackList.StartTime.AddSeconds(IPBlackList.Duration))
                    {
                        return(true);
                    }
                    else
                    {
                        Core.Setting.IPBlackListData.Remove(IPBlackList);
                        Core.Setting.Save();
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Пример #2
0
        public void LoadLists()
        {
            PathWhiteList = Path.Combine(SanyaPlugin.Instance.Config.DataDirectory, "VPN-Whitelist.txt");
            PathBlackList = Path.Combine(SanyaPlugin.Instance.Config.DataDirectory, "VPN-Blacklist.txt");
            IPWhiteList.Clear();
            IPBlackList.Clear();

            if (!File.Exists(PathWhiteList))
            {
                File.WriteAllText(PathWhiteList, null);
            }
            if (!File.Exists(PathBlackList))
            {
                File.WriteAllText(PathBlackList, null);
            }

            foreach (var line in File.ReadAllLines(PathWhiteList))
            {
                if (IPAddress.TryParse(line, out var address))
                {
                    IPWhiteList.Add(address);
                }
            }

            foreach (var line2 in File.ReadAllLines(PathBlackList))
            {
                if (IPAddress.TryParse(line2, out var address2))
                {
                    IPBlackList.Add(address2);
                }
            }
        }
Пример #3
0
 public void AddBlackList(IPAddress address)
 {
     IPBlackList.Add(address);
     using (StreamWriter writer = File.AppendText(PathBlackList))
     {
         writer.WriteLine(address);
     }
 }
 /// <summary>
 /// Add the following Player to the IPBlackList.
 /// </summary>
 /// <param name="IPAddress">IPAddress</param>
 /// <param name="Duration">How long?</param>
 /// <param name="Reason">Reason</param>
 public static void AddIPBlackList(this string IPAddress, int Duration, string Reason)
 {
     if (IPAddress.IsIPBlackListed())
     {
         IPBlackList IPBlackList = IPAddress.GetIPBlackList();
         IPBlackList.StartTime = DateTime.Now;
         IPBlackList.Duration  = Duration;
         IPBlackList.Reason    = Reason;
         Core.Setting.Save();
     }
     else
     {
         Core.Setting.IPBlackListData.Add(new IPBlackList(IPAddress, Reason, DateTime.Now, Duration));
         Core.Setting.Save();
     }
 }
 /// <summary>
 /// Add the following Player to the IPBlackList
 /// </summary>
 /// <param name="Player">Player to ban.</param>
 /// <param name="Duration">How long?</param>
 /// <param name="Reason">Reason.</param>
 public static void AddIPBlackList(this Player Player, int Duration, string Reason)
 {
     if (Player.IsIPBlackListed())
     {
         IPBlackList IPBlackList = Player.GetIPBlackList();
         IPBlackList.StartTime = DateTime.Now;
         IPBlackList.Duration  = Duration;
         IPBlackList.Reason    = Reason;
         Core.Setting.Save();
     }
     else
     {
         Core.Setting.IPBlackListData.Add(new IPBlackList(((IPEndPoint)Player.Network.Client.Client.RemoteEndPoint).Address.ToString(), Reason, DateTime.Now, Duration));
         Core.Setting.Save();
     }
 }
Пример #6
0
 public bool IsBlackListed(IPAddress address) => IPBlackList.Contains(address);