发现一个ip编码的问题

lamking 2004-08-04 06:22:06
发现很多论坛,文章系统,留言版等都有记录ip的功能.
或者把ip以字符串方式存入数据库,或者经过编码后存入数据库,但这里面都忽略了一个问题
Request.ServerVariables("HTTP_X_FORWARDED_FOR")
这个东西返回的值有很多可能
1.空值 这通常是用户没有使用代理.
2.一个合法的ip地址 这表明用户使用了代理
3.多个合法ip构成的字符串比如
202.112.14.151,202.112.14.161
而且不止是两个还有可能更多.这通常发生在使用了多层代理的情况下.

对于1,2 通常程序都能很好的处理,对于第3个,一些编码函数就要出错。
网上很多ip地址编码采用的是类似下面的函数
function IpEncode(byval uip)
if isnull(uip) or uip="" then
IpEncode=0
else
dim ary_ip,n
ary_ip=split(trim(uip),".")
n=ubound(ary_ip)
if n=3 then
IpEncode=ary_ip(0)*256*256*256+ary_ip(1)*65536+ary_ip(2)*256+ary_ip(3)
else
IpEncode=0
end if
end if
end function
这样编码后的数字将是0
解码后ip地址当然0.0.0.0这种奇怪的地址...
...全文
96 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lly365 2005-06-15
同上
回复
yangvb 2005-06-15
ding
回复
yangdengfeng2003 2004-08-04
ding
回复
xiaobird1 2004-08-04
呵,没关注过,
关注ing。
回复
laihongbo524 2004-08-04
准备点的编码格式是,如下:
202.102.179.104

202*256*256*256 + 102*256*256 + 179*256 + 104-1

回复
lamking 2004-08-04
另外一些数据库存储ip的通常只有文本类型的设置20个宽度(双精度的没问题了)
有可能装不下
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2004-08-04 06:22
社区公告
暂无公告