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

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

推荐:.Net教程之HTTP状态码200,301,302
跳转非常常用,在哪里都一样,这里的一些说明和用法也如此,不止适用于asp.net,其他语言也会用得到。跳转的目的本来很简单,就是当用户或系统需要时从一个页面转向另一个页面,但自从有了

这里还有一个用于逆转换的扩展方法,用于将long转回IPAddress:

以下为引用的内容:

/// <summary>

/// 将整数转为IP地址

/// </summary>

/// <returns>IP地址</returns>

public static IPAddress 转换为IP地址(this long l)

{
var b = new byte[4];

for (int i = 0; i < 4; i )

{

b[3 - i] = (byte)(l >> 8 * i & 255);

}

return new IPAddress(b);

}

这样我们就可以通过计算得到正确并有意义的整数了:

以下为引用的内容:

“127.0.0.1” -> 2130706433

“127.0.0.2” –> 2130706434

OK,确立了方案核心,下面开始设计SQLServer数据表:

 

这样设计后,在添加时将起始和终止IP地址转为long类型并存入,并指定一个过期时间。

在验证时只需要获取所有未过期的条目,比较传入的IP地址是否介于起始值和终止值之间即可。

以往通过字符串存储和验证的方案中,屏蔽时要么屏蔽一个精确的IP地址,要么就屏蔽一段或两段IP,如“192.168.*.*”,要想屏蔽“192.168.1.200”到“192.168.4.64”之间的IP的话,将会非常麻烦;

而我们这样设计就可以轻松实现:“192.168.1.200”在数据库里存储的是“3232235976”,“192.168.4.64”在数据库中是“3232236608”,即使使用肉眼也能极快地判断传入的地址是否介于它们之间,更不要说计算机查询了。

分享:解析.NET程序员 Ruby核心语法入门
本文的目的是为了找出为什么.NET程序员都想学习并使用Ruby,并探索Ruby语言的核心语法。 微软的IronRuby项目为Windows平台带来了强大的动态语言,Ruby编程语言是一个现代的,面向对象的

来源:模板无忧//所属分类:.Net教程/更新时间:2009-08-30
相关.Net教程