Web代理(Asp版)
2018-09-06 11:57
asp写Web代理软件,可以用作突破网关限制等,主要是为了配合Ajax使用的(因Firefox存在跨域访问的问题) 版本0.1 作者LlinZzi
功能
判断网站编码,支持任何语言
超连接自动转换
附带一个远程下载图片的函数
未解决问题,目前只能用来代理网站代码,图片等其他数据的代理转发尚未完成。
复制代码 代码如下:
<%@LANGUAGE=JAVASCRIPTCODEPAGE=65001%>
<%Response.Charset=utf-8%>
<%
Server.ScriptTimeout=9999999;
varSurl=String(Request.QueryString(url));
if(Surl==undefined){
Response.Write(<pstyle=\font-size:9pt;margin:30px;padding:10px;text-align:center;background-color:#FFCCCC;border:1pxsolid#999999;\>Asp代理byLlinzzi</p>);
Response.Write(<divstyle=\font-size:9pt;margin:30px;text-align:center;background-color:#FFFFCC;border:1pxsolid#999999;\>);
Response.Write(<formaction=\#\method=\get\>);
Response.Write(<pstyle=\font-size:9pt;margin:5px;text-align:center;\>请输入网址</p>);
Response.Write(<p><inputstyle=\background-color:#FFCCCC;border:1pxsolid#999999;\type=\text\name=\url\></p>);
Response.Write(<p><inputstyle=\background-color:#FFCCCC;border:1pxsolid#999999;\type=\submit\value=\GoWeb\></p>);
Response.Write(</div>);
}
elseif(Surl==){
Response.Write(<pstyle=\font-size:9pt;margin:30px;padding:10px;text-align:center;background-color:#FFCCCC;border:1pxsolid#999999;\>Asp代理byLlinzzi</p>);
Response.Write(<divstyle=\font-size:9pt;margin:30px;text-align:center;background-color:#FFFFCC;border:1pxsolid#999999;\>);
Response.Write(<p>地址为空,请格式输入如
Response.Write(</div>);
}
else{
Surl=(Surl.substr(0,7)!=
Response.Write(send_request(Surl));
}
functionsend_request(url){
varcodedtext;
http_request=Server.CreateObject(Microsoft.XMLHTTP);
try{
http_request.Open(GET,url,false);
http_request.Send(null);
}
catch(e)
{
Response.Write(e.description);
}
if(http_request.ReadyState==4){
//自动判断编码开始
varcharresult=http_request.ResponseText.match(/CharSet=(\S+)/i);
if(charresult!=null){
varCset=charresult[1];
}else{Cset=utf-8}
//自动判断编码结束
codedtext=bytesToBSTR(http_request.Responsebody,Cset);
}else{
codedtext=Erro;
}
//替换超连接
codedtext=codedtext.replace(/href=\/?/ig,href=\+url+/);
codedtext=codedtext.replace(/(<a.*href=)/ig,$1servergate.asp?url=);
return(codedtext);
}
functionbytesToBSTR(body,Cset){
varobjstream;
objstream=Server.CreateObject(Adodb.Stream);
objstream.Type=1;
objstream.Mode=3;
objstream.Open();
objstream.Write(body);
objstream.Position=0;
objstream.Type=2;
objstream.Charset=Cset;
bytesToBSTR=objstream.Readtext;
objstream.Close;
return(bytesToBSTR);
}
functionSaveRemoteFile(LocalFileName,RemoteFileUrl){
varRetrieval,Ads;
Retrieval=Server.CreateObject(Microsoft.XMLHTTP);
Retrieval.Open(GET,RemoteFileUrl,false);
Retrieval.Send(null);
if(Retrieval.ReadyState==4){
Ads=Server.CreateObject(Adodb.Stream);
Ads.Type=1;
Ads.Open();
Ads.Write(Retrieval.Responsebody);
Ads.SaveToFile(Server.MapPath(LocalFileName),2);
Ads.Cancel;
Ads.Close;
}
}
//SaveRemoteFile(aa.gif,
%>
上一篇:asp数据库连接函数
下一篇:序中创建唯一序号