解读Asp.net教程:设计IP地址屏蔽功能(4)_.Net教程
推荐:.Net教程之HTTP状态码200,301,302跳转非常常用,在哪里都一样,这里的一些说明和用法也如此,不止适用于asp.net,其他语言也会用得到。跳转的目的本来很简单,就是当用户或系统需要时从一个页面转向另一个页面,但自从有了
以下为引用的内容:
/// <summary> /// 添加一个新的IP屏蔽区段 /// </summary> /// <param name="IP区段起始值">起始IP,如61.51.200.0</param> /// <param name="IP区段终止值">终止IP,如61.51.255.255</param> /// <param name="过期时间">屏蔽截止时间</param> /// <returns>ID号</returns> public static Guid 添加(string IP区段起始值, string IP区段终止值, DateTime 过期时间) { var id = Guid.NewGuid(); var sip = IPAddress.Parse(IP区段起始值).转换为整数(); var eip = IPAddress.Parse(IP区段终止值).转换为整数(); using (var c = new SiteMainEntities()) { //检测是否已存在相同的IP屏蔽记录 var a = c.IP地址屏蔽.Where(f => f.区段起始值 == sip && f.区段终止值 == eip); //如果存在则更新其过期时间 if (a.Count()>0) { var l = a.First(); if (l.过期时间 < 过期时间) l.过期时间 = 过期时间; } //不存在则正常添加一个新的屏蔽记录 else c.AddToIP地址屏蔽(new IP地址屏蔽 { ID = id, 过期时间 = 过期时间, 区段起始值 = sip, 区段终止值 = eip }); c.SaveChanges(); } return id; } 检测指定IP地址是否被屏蔽的代码: /// <summary> /// 检测指定IP地址是否已受到屏蔽 /// </summary> /// <param name="IP地址">要检测的IP地址</param> /// <returns>是否属于已屏蔽的IP</returns> public static bool 检测是否被屏蔽(string IP地址) { var ip = IPAddress.Parse(IP地址).转换为整数(); using (var c = new SiteMainEntities()) { return c.IP地址屏蔽.Count(f => f.过期时间 > DateTime.Now && ip >= f.区段起始值 && ip <= f.区段终止值) > 0; } } |
这种方案比起以往的字符串验证方案来说优雅了许多,并可以提高数据库查询的效率,建议各位在日后的网站开发中都采用此方案。
分享:解析.NET程序员 Ruby核心语法入门本文的目的是为了找出为什么.NET程序员都想学习并使用Ruby,并探索Ruby语言的核心语法。 微软的IronRuby项目为Windows平台带来了强大的动态语言,Ruby编程语言是一个现代的,面向对象的
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP发送Email实例(可带附件)
- js实现广告漂浮效果的小例子
- asp.net Repeater 数据绑定的具体实现
- Asp.Net 无刷新文件上传并显示进度条的实现方法及思路
- Asp.net获取客户端IP常见代码存在的伪造IP问题探讨
- VS2010 水晶报表的使用方法
- ASP.NET中操作SQL数据库(连接字符串的配置及获取)
- asp.net页面传值测试实例代码
- DataGridView - DataGridViewCheckBoxCell的使用介绍
- asp.net中javascript的引用(直接引入和间接引入)
- 三层+存储过程实现分页示例代码
- 相关链接:
- 教程说明:
.Net教程-解读Asp.net教程:设计IP地址屏蔽功能(4)。