<%=left(IP,inStrRev(IP,"."))%>
搞定
有时候我们需要显示来访客户的IP,但是又不能泄露客户的隐私,就需要隐藏IP的后几位,显示类似于:222.222.222.*
简单的说可以用left来实现:
<%=left(rs("IP"),12)%>*
但是它有局限性就是只能隐藏前三段都是三位的IP,非常不方便。那么我们可以用Len取总位数减去想隐藏的位数。
即:
<%=left(rs("IP"),(len(rs(IP))-3))%>
这样就可以隐藏任何IP的后三位。不过这个仍然有缺陷,对于类似于127.0.0.1/8.8.8.8之类的IP显示出来分别是127.0.* 和 8.8.*,而不是127.0.0.* 和 8.8.8.* 这个就需要拓展思路了。
那么我们看看不同的IP用上面方法隐藏的效果吧:
222.222.222.222 隐藏后 222.222.222.*
192.168.1.19 隐藏后 192.168.1*
8.8.8.8 隐藏后 8.8.*
而我们要求的效果是:222.222.222.*/192.168.1.*/8.8.8.*
也就说如果隐藏末位的话需要做一个判断,判断末位也就是最后一个“.”之后有几位,想起前段时间学习的intStr函数,于是写代码如下:
<% dim ip,ipV3,ipV2 ' 首先定义几个变量,这是我的个人习惯,其实不用定义也可以使用的,以免下面变量重复 ip=Request.ServerVariables("REMOTE_ADDR") ' 读取客户IP ipV3=right(ip,3) ' 右取整个IP的三位数 ipV2=right(ip,2) ' 右取整个IP的两位数 if instr(ipV3,".")=0 then ' 判断右边三位数里面是否含有“.”,如果没有,那么代表末位是三位数 response.Write(left(ip,len(ip)-3)&"*") ' 隐藏右边三位数 elseif instr(ipV2,".")=0 then ' 判断右边两位数如果没有含有“.”,那么代表末位是两位数 response.Write(left(ip,len(ip)-2)&"*") ' 隐藏右边两位数 else ' 如果上述条件都不满足那么代表末位是一个数字 response.Write(left(ip,len(ip)-1)&"*") ' 隐藏右边一位数 end if %>
这样就可以完美实现不同IP都可以准确隐藏末位,显示类似于192.168.1.* 和 222.222.222.*
我将上面这段程序上传到了空间,大家可以测试一下。
http://www.icoa.cn/demo/asp/ip.asp
参考资料:
1.ASP字符串InStr函数用来判断是否含有某些字符串
https://www.icoa.cn/a/317.html
2.ASP隐藏IP后末位和手机中间四位数
http://seo.zhanglibo.cn/4.html
- 相关文章 -
ASP用replace()替换字符串的用法 - 2011-05-21
用ASP内建对象轻松做网址域名自动跳转(下) - 2010-06-29
ASP不能用 '..' 表示父目录解决办法 - 2011-05-15
ASP字符串InStr函数用来判断是否含有某些字符串 - 2010-06-12
用ASP判断客户端浏览器语言自动跳转代码 - 2010-06-12
网址URL代码(urlcode)用ASP编码与解码的方法 - 2011-05-05
用ASP内建对象轻松做网址域名自动跳转(上) - 2010-06-01
关于学习ASP和编程的28个观点 - 2010-02-05
- 文章评论 -
- 最新评论[4条评论] -
<%=left(IP,inStrRev(IP,"."))%>
搞定
楼上的不失为一个好办法,有时间我试试,O(∩_∩)O~
'定义IP地址
IP="45.78.23.89"
'将IP地址转换为数组
ip_arr=Split(IP,".")
'取下标0-2即可
ip3=ip_arr(0)&"."&ip_arr(1)&"."&ip_arr(2)
麻烦麻烦麻烦
版权所有©逍遥峡谷 - 星际中心超自然局 · 地球总部 |
逍遥峡谷 ·
酷品优选
Copyright©Interstellar Central Occult Agency (I.C.O.A)
本局纯属虚构,如有雷同,纯属巧合