WEB开发网
开发学院WEB开发ASP Web在线代理(Asp版) 阅读

Web在线代理(Asp版)

 2007-10-15 11:12:29 来源:WEB开发网   
核心提示:asp写Web代理软件,可以用作突破网关限制等,Web在线代理(Asp版),主要是为了配合Ajax使用的(因Firefox存在跨域访问的问题) 版本 0.1 作者 LlinZzi 功能 判断网站编码,支持任何语言 超连接自动转换 附带一个远程下载图片的函数 未解决问题,目前只能用来代理网站代码,图片等其他数据的代理转发
asp写Web代理软件,可以用作突破网关限制等,主要是为了配合Ajax使用的(因Firefox存在跨域访问的问题) 版本 0.1 作者 LlinZzi
功能
判断网站编码,支持任何语言
超连接自动转换
附带一个远程下载图片的函数
未解决问题,目前只能用来代理网站代码,图片等其他数据的代理转发尚未完成。
[复制此代码]CODE:
<%@LANGUAGE="javaSCRipT" CODEPAGE="65001"%>
<%Response.Charset = "utf-8"%>
<%
Server.ScriptTimeout=9999999;
var Surl = String(Request.QueryString("url"));
if(Surl == "undefined"){
Response.Write("<p style=\"font-size:9pt;margin:30px;padding:10px;text-align:center;background-color:#FFCCCC;border: 1px solid #999999;\">Asp代理 by Llinzzi</p>");
Response.Write("<div style=\"font-size:9pt;margin:30px;text-align:center;background-color:#FFFFCC;border: 1px solid #999999;\">");
Response.Write("<form action=\"#\" method=\"get\" >");
Response.Write("<p style=\"font-size:9pt;margin:5px;text-align:center;\">请输入网址</p>");
Response.Write("<p><input style=\"background-color: #FFCCCC;border: 1px solid #999999;\" type=\"text\" name=\"url\"></p>");
Response.Write("<p><input style=\"background-color: #FFCCCC;border: 1px solid #999999;\" type=\"submit\"  value=\"GoWeb\"></p>");
Response.Write("</div>");
}
else if(Surl == ""){
Response.Write("<p style=\"font-size:9pt;margin:30px;padding:10px;text-align:center;background-color:#FFCCCC;border: 1px solid #999999;\">Asp代理 by Llinzzi</p>");
Response.Write("<div style=\"font-size:9pt;margin:30px;text-align:center;background-color:#FFFFCC;border: 1px solid #999999;\">");
Response.Write("<p>地址为空,请格式输入 如 www.tom.com </p>");
Response.Write("</div>");
}
else{
Surl = (Surl.substr(0,7) != "http://") ? "http://"+Surl : Surl;
Response.Write(send_request(Surl));
}
function send_request(url) {
   var codedtext;
   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){
     //自动判断编码开始
     var charresult = http_request.ResponseText.match(/CharSet=(\S+)"/i);
     if (charresult != null){
     var Cset = 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);
}
function bytesToBSTR(body,Cset){
   var objstream;
   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);
}
function SaveRemoteFile(LocalFileName,RemoteFileUrl){
   var Retrieval,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","/images/XrssFile/2007-1/12/2007112124640411.gif");
%>

Tags:Web 在线 代理

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接