操作客户端IP类(C#)
来源:互联网 发布:linux怎么做脚本 编辑:程序博客网 时间:2024/06/07 17:15
using System;
using System.Text;
using System.Data;
namespace Baolee.GeneralMethod
{
/// <summary>
/// DenyIP 的摘要说明。
/// </summary>
public class DenyIP
{
/// <summary>
/// 构造函数
/// </summary>
public DenyIP()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// times add 1
/// </summary>
/// <param name="dt"></param>
/// <param name="ip"></param>
public void Add(DataTable dt, string ip)
{
foreach (DataRow row in dt.Rows)
{
if (row[0].ToString() == ip)
{
row[1] = DateTime.Now;
row[2] = Convert.ToInt16(row[2]) + 1;
return;
}
}
DataRow row2 = dt.NewRow();
row2[0] = ip;
row2[1] = DateTime.Now;
row2[2] = 1;
dt.Rows.Add(row2);
}
/// <summary>
///
/// </summary>
/// <param name="dt"></param>
/// <param name="times"></param>
private void Clear(DataTable dt, int times)
{
int count = dt.Rows.Count;
int num2 = 0;
for (int i = 0; i < count; i++)
{
if ((Convert.ToInt16(dt.Rows[num2][2]) > times) && (DateTime.Now.CompareTo(dt.Rows[num2][1]) > 0))
{
dt.Rows[num2].Delete();
}
else if (DateTime.Now.AddMinutes(-30).CompareTo(dt.Rows[num2][1]) > 0)
{
dt.Rows[num2].Delete();
}
else
{
num2++;
}
}
}
/// <summary>
/// 从DataTable中移除指定IP
/// </summary>
/// <param name="dt"></param>
/// <param name="ip"></param>
public void Clear(DataTable dt, string ip)
{
foreach (DataRow row in dt.Rows)
{
if (row[0].ToString() == ip)
{
row.Delete();
break;
}
}
}
/// <summary>
/// 检查用户IP使用情况,记录登入失败次数,如果超出允许次数,则封IP10分钟
/// </summary>
/// <param name="dt">DataTable</param>
/// <param name="ip">用户IP</param>
/// <param name="times">可允许次数</param>
/// <returns>该IP是否允许使用</returns>
public bool DetectIP(DataTable dt, string ip, int times)
{
this.Clear(dt, times);
foreach (DataRow row in dt.Rows)
{
if (row[0].ToString() == ip)
{
int num = Convert.ToInt16(row[2]);
if (times < (num + 1))
{
row[1] = DateTime.Now.AddMinutes(10);
row[2] = num + 1;
return false;
}
}
}
return true;
}
/// <summary>
/// 创建DataTable for IPList
/// </summary>
/// <returns></returns>
public DataTable LockIPList()
{
DataTable table = new DataTable();
DataColumn column = new DataColumn("IP", Type.GetType("System.String"));
table.Columns.Add(column);
column = new DataColumn("LockTime", Type.GetType("System.DateTime"));
table.Columns.Add(column);
column = new DataColumn("Times", Type.GetType("System.Int16"));
table.Columns.Add(column);
return table;
}
}
}
- 操作客户端IP类(C#)
- C#,多线程客户端IP端口扫描
- CI数据库的相关操作&获取客户端IP
- ubuntu15.04 C客户端操作mysql
- linux 使用c在tcp socket服务器端获取客户端ip
- struts2 类里面获取客户端ip
- java查询客户端IP工具类
- 获取客户端ip地址工具类
- 获取客户端IP和本地IP的工具类
- HTTP客户端操作工具类
- IP和客户端IP是什么?
- IP常用操作工具类
- socket C 客户端发送数据到服务端,操作mysql数据库
- 得到客户端真实ip
- 关于获得客户端ip
- 限制客户端ip访问
- 获取客户端IP地址
- 获取客户端ip
- Eclipse Background (背景)设置
- 西凉村杀手
- Ubuntu 7.04 安装(硬盘安装)与配置图文指南
- Linux下JSP搭建(Tomcat4+jdk+postgreS)
- 图片加水印类C#
- 操作客户端IP类(C#)
- 加密解密类(C#)
- 发送email类(C#)
- 操作图片类(C#)
- 发送email类[2](C#)
- Message类,常用方法类(C#)
- 13,06,2007 rainy
- Exception异常类(C#)
- 设置是否发送errorlogs(true发送,false不发送)