
|
有没有办法让系统自动判断用户是来自内网还是外网,并进行相应的地址跳转呢?答案是肯定的。我们发现只要把链接指向如下的一个ASP文件,它就可以帮助我们来进行自动了判断了:
<html> <head> <title>Test</title> </head> <body> <% dim ip ip=Request.ServerVariables("REMOTE_ADDR") 获取客户端的IP if ip="192.168.0.50" then 如果客户端IP为192.168.0.50(内网) Response.Redirect "http://192.168.0.1" 直接重定向到内网的地址 elseif ip="202.202.202.202" then 如果客户端的IP为202.202.202.202(外网) Response.Redirect "http://202.202.202.1" 则重定向到202.202.202.1 end if %> </body> </html> 但问题还是有。以上一段代码,只能进行逐个判断,而网吧就有三百多台电脑,难道要让以上语句重复上百遍?应该还有其他的办法。让我们来对网吧的IP分析一下,内部的IP都是以“192.168”开头的,网吧内的IP都是以“192.168”开头的,现在我们只要交次将获得的IP地址进行分析,取出前面部分进行比较,如果是“192.168”,则判断为网吧用户,访问网吧内的地址192.168.0.1;如果是“202.202”,则判定为外网用户,访问202.202.202.1;如果两者都不是,则判定为非法用户,没有访问赊购资源的权限,重定向支出错页面。为了达到这个效果,我们需要用到 Split 函数对获得的IP以“.”为分界符进行分割,获得一个数组。如: dim ip,ipk ip=Request.ServerVariables("REMOTE_ADDR") 获得用户的IP ipk=split(userip,".",-1,1) 对获得的IP以“.”为分界符进行分割 此时,如果客户的IP为202.202.202.202,则 ipk(0)=“202”; ipk(1)=“202”; ipk(2)=“202”; ipk(3)=“202”; 则ipk(0)&"."&ipk(2)="202.202" 现在,我们可以将这个ASP文件进行如下的修改: <head> <title>网页自动转向程序-BY BABAI 2006</title> </head> <body> <% dim userip,ipk,gotourlip userip=Request.ServerVariables("REMOTE_ADDR") ipk=split(userip,".",-1,1) gotourlip=ipk(0)&"."&ipk(1) if gotourlip="192.168" Then 如果是网吧用户 Response.Redirect "http://a.52wp.com/" 导向到网吧的地址 Elseif gotourlip="202.202" then 如果是外网用户 Response.Redirect "http://b.52wp.com/" 导向到公网的地址 end If Response.Redirect "http://www.52wp.com/eorry.htm 其他用户,则导向出错页面 %> </body> </html> 至此,根据IP自动进行网页重定向功能已经实现。不过由于有些浏览器不允许进行网页自动重定向,我们还需要在以上文件中加入几个手动链接,以确保网页能够被正常的访问到。 |