<%
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))//获取地址栏中的地址,并将它赋给server_v1
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))//获取url中的域名信息,赋给server_v2
if mid(server_v1,8,len(server_v2))<>server_v2 then 或者用 if Instr(server_v1, "show_index")=0 then//就是地址没有show_index的时候
response.write "<script>alert('警告!你正在从外部提交数据!!请立即终止!!\n你的IP已经被记录,如果再次来');</script>"
QQ:9231333
Response.Redirect "http://www.yy66.net"
end if
%>
注:
1.判断链接的地址是否就是自己服务器的,如果不是,说明是盗链的,这样就可以简单地实现防盗链。
2.Mid(server_v1,8,Len(server_v2))中为什么是8:
a.Request.ServerVariables("HTTP_REFERER")返回的地址中包括[http://]的开头,(返回调用这个asp页面的是哪一个页面,即看这个页面是被哪个页面所调用的,也就是说:
有a.asp和b.asp两个页面,在a.asp中点击链接到b.asp,或是a.asp中用表单提交数据到b.asp,或是用脚本跳转到b.asp, 那么在b.asp中用request.servervariables("HTTP_REFERER")方法取得的字符串就是a.asp的URL路径。)
b.而Request.ServerVariables("SERVER_NAME")只是返回服务器名称,不包括[http://],后面也没有文件的路径+文件名。
[http://]就正好7个字符了。所以从第8个字符开始,读取Request.ServerVariables("SERVER_NAME")那么长的字符来比较。