当前位置: 首页 > 图文教程 > 网络编程 > ASP > Web代理(Asp版)

ASP
asp分页(自己整理的2个分页程序)
ASP常用的系统配置函数
雨哲防采集策略之列表篇
雨哲浅谈关于防采集而不影响收录内容篇
asp数据库连接函数
ajax XMLHTTP Post Form时的表单乱码综合解决
ASP注入详细命令40条
用ASP实现MSSQL用户密码破解
ASP创建对象的两种方法比较
ASP字符串转换为整形、双精度型、布尔
ASP计算str2在str1中出现的次数
asp采集抓取网上房产信息的代码
ASP注册登陆实例代码
ASP中使用FileSystemObject时提高性能的方法
分享一个好东东,动态Include文件 (Dynamic File Includes)
解决 JScript 中使用日期类型数据时出现类型错误的问题
在ASP里面创建GUID
在JScript中使用缓存技术的实际代码
ASP javascript Application对象的Contents和StaticObjects做Cache的一些经验
海阳2006+功能中的潜水王

ASP 中的 Web代理(Asp版)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 60 ::
收藏到网摘: n/a

asp写Web代理软件,可以用作突破网关限制等,主要是为了配合Ajax使用的(因Firefox存在跨域访问的问题) 版本 0.1 作者 LlinZzi
功能
判断网站编码,支持任何语言
超连接自动转换
附带一个远程下载图片的函数
未解决问题,目前只能用来代理网站代码,图片等其他数据的代理转发尚未完成。
复制代码 代码如下:

<%@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("/upload/tech/20091012/20091012011826_c20ad4d76fe97759aa27a0c99bff6710.gif","http://www.baidu.com/img/logo.gif");
%>