解读Asp.net教程:设计IP地址屏蔽功能(4)_.Net教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:.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编程语言是一个现代的,面向对象的

共4页上一页1234下一页
来源:模板无忧//所属分类:.Net教程/更新时间:2009-08-30
相关.Net教程