用JS实现根据IP来源分配访问地址或域名

来源:百度文库 编辑:神马文学网 时间:2024/05/01 04:50:03

用JS实现根据IP来源分配访问地址或域名

 
因为交换机的缘故,内网(办公室)用户使用域名访问网站,在IIS的日志中记录的是10.10.1.1(因为绕了一个圈子从内网到外网再到服务器,经过了防火墙).上次就是出了这样的事故,无法追踪访客信息.

现在的方案是:内网用户访问时,不允许使用公网IP或者域名访问,必须使用内网的ip(10.10.3.3)访问服务器。而非内网用户则通过公网IP和域名访问网站。这样IIS日志所记录的信息全部真实

网上好多关于JS获取IP,获取URL的文章.都说需要装控件,需要客户端使用较低的安全策略,而ASP/PHP/JSP就不用那么麻烦,可以轻松实现.而这次改版的网站是全静态生成页面,格式是shtml,里面不能放ASP程序.必须靠JS来调用.
找了一下午资料,也没如意,后来突然想起前几天做的旺阁的新闻调用,就直接调用的ASP文件,也不用非要是JS文件啊,

那么这样做以后,就不用麻烦去写ip.js文件,而就只需要写IP.ASP就可以了,用 document.write("..");输入就对了哦。
ASP CODE:
程序代码'--内网用户重定向------------------
ip =  Request.ServerVariables("REMOTE_ADDR")
if (left(ip,5)="10.10") and Request.ServerVariables("HTTP_HOST")<>"10.10.3.3" then
    response.Redirect("http://10.10.3.3/")
end if
'----------------------------------

JS输出:

程序代码<% ip =  Request.ServerVariables("REMOTE_ADDR")
if (left(ip,5)="10.10") and Request.ServerVariables("HTTP_HOST")<>"10.10.3.3" then
 %>
        document.write("");
<% end if %>



再结合西方亮的404智能跳转JS,就可以完美实现内网的访问用户地址控制了.。
程序代码<% ip =  Request.ServerVariables("REMOTE_ADDR")
if (left(ip,5)="10.10") and Request.ServerVariables("HTTP_HOST")<>"10.10.3.3" then
 %>
        document.write(" 
var newdomain='10.10.3.3';                //内外用户访问地址 
var stoptime=0;                                //页面停留时间,以秒为单位 

var My_Url=document.location.href; 
godomain(); 
function godomain() 

        var str=My_Url; 
        stag=str.indexOf('//')+1;  
        str=str.substring(stag+1,str.length) 
        stag=str.indexOf('/');  
        rstr=str.substring(0,stag);  
        olddomain=rstr; 
        My_Url=My_Url.replace(olddomain,newdomain); 
        setTimeout('gourl()',stoptime*1000); 

function gourl() 
{window.location=My_Url;} 
");
<% end if %>



汗,不知道哪儿出了问题,直接在document.write里面写js内容,居然不行,又试了好几个小时,换写SRC的路径就对了.
-------------------------------------------------------------------------------------------------
1:文件:ip.asp
程序代码<% ip =  Request.ServerVariables("REMOTE_ADDR")
if (left(ip,5)="10.10") and Request.ServerVariables("HTTP_HOST")<>"10.10.3.3" then
 %>
        document.write("");
<% end if %>

2.文件ip.js
程序代码var newdomain='10.10.3.3';                //内外用户访问地址 
var stoptime=0;                                //页面停留时间,以秒为单位  
var My_Url=document.location.href; 
godomain(); 
function godomain() 

        var str=My_Url; 
        stag=str.indexOf('//')+1;  
        str=str.substring(stag+1,str.length) 
        stag=str.indexOf('/');  
        rstr=str.substring(0,stag);  
        olddomain=rstr; 
        My_Url=My_Url.replace(olddomain,newdomain); 
        setTimeout('gourl()',stoptime*1000); 

function gourl() 
{window.location=My_Url;} 



文件3:top.shtml
程序代码