用ASP隐藏IP末位进阶版

上一篇文章介绍了如何隐藏IP的末位和手机中间四位,但是对于隐藏IP末位来说似乎不那么完美。

那么我们看看不同的IP吧:

222.222.222.222 隐藏后 222.222.222.*
192.168.1.19 隐藏后 192.168.1*
8.8.8.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/ip.asp

参考资料:
1.ASP字符串InStr函数用来判断是否含有某些字符串
http://www.icoa.cn/a/317.html
2.ASP隐藏IP后末位和手机中间四位数
http://liboseo.com/4.html