日期:2014-05-17  浏览次数:20397 次

如何判断用户IP在我设置的IP范围中?
我有一张IP设置表,结构如下:
id Number(10) Not null, /*按规则自动生成 单位ID*/
unit Varchar2(50), /*单位*/
area Varchar2(60), /*地区*/
StartIP1 number(3), /*起始ip第一段*/
StartIP2 number(3), /*起始ip第二段*/
StartIP3 number(3), /*起始ip第三段*/
StartIP4 number(3), /*起始ip第四段*/
EndIP1 number(3), /*结束ip第一段*/
EndIP2 number(3), /*结束ip第二段*/
EndIP3 number(3), /*结束ip第三段*/
EndIP4 number(3), /*结束ip第四段*/

我现在要判断当前访问者的IP是否在我设置的范围中,求教该SQL怎么写?

------解决方案--------------------
由StartIP1*256*256*256+StartIP2*256*256+StartIP3*256+StartIP4得到一个整数A;EndIP的4个也类似,得到另一个整数B,访问者的IP也得到一个整数C,判断A<=C<=B。
------解决方案--------------------
支持#2楼,IP地址是用点分隔的4位数字,每一位跟前一位之间的进位是256,把前一位乘以256加后一位这样可以换算成一个数字。
其实有些数据库是有内置函数可以把IP地址在点分格式和数字格式之间转换的,比如MySql