웹 온라인 에이전트(Asp 버전)
저자:Eve Cole
업데이트 시간:2009-06-23 17:01:33
asp로 작성된 웹 프록시 소프트웨어는 게이트웨이 제한 등을 돌파하는 데 사용할 수 있습니다. 주로 Ajax와 함께 사용됩니다(Firefox의 도메인 간 액세스 문제로 인해) Version 0.1 Author LlinZzi
이 기능은 웹사이트 코드를 결정하고, 모든 언어의 하이퍼링크 자동 변환을 지원하며, 사진을 원격으로 다운로드하는 미해결 기능이 있습니다. 현재는 웹사이트 코드를 프록시하는 데에만 사용할 수 있으며, 사진 및 기타 데이터의 프록시 전달은 아직 이루어지지 않았습니다. 완전한.
[이 코드 복사]CODE:
< %@LANGUAGE="JAVASCRIPT " CODEPAGE="65001"%>
<%Response.Charset = "utf-8"%>
<%
Server.ScriptTimeout=9999999;
var Surl = String(Request.QueryString("url"));
if(Surl == "정의되지 않음"){
Response.Write("<p style="font-size:9pt;margin:30px;padding:10px;text-align:center; background-color:#FFCCCC;border: 1px solid #999999;">Asp 프록시 작성자: 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;">URL을 입력하세요</p>");
Response.Write("<p><입력 스타일="배경색: #FFCCCC;테두리: 1px 단색 #999999;" 유형="텍스트" 이름="url"></p>" );
Response.Write("<p><입력 스타일="배경색: #FFCCCC;테두리: 1px 단색 #999999;" 유형="제출" 값="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 프록시 작성자: 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>");
}
또 다른{
Surl = (Surl.substr(0,7) != "http://") ? " http://"+Surl : Surl;
Response.Write(send_request(Surl));
}
함수 send_request(url) {
var 코드화된 텍스트;
http_request = Server.CreateObject("Microsoft.XMLHTTP");
노력하다{
http_request.Open("GET",url,false);
http_request.Send(null);
}
잡기(e)
{
Response.Write(e.설명);
}
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);
}또 다른{
codedtext = "오류";
}
//하이퍼링크 교체
codedtext = codedtext.replace(/href="/?/ig,"href=""+url+"/");
codedtext = codedtext.replace(/(<a.*href=")/ig,"$1servergate.asp?url=");
return(코드화된 텍스트);
}
함수 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);
}
함수 SaveRemoteFile(LocalFileName,RemoteFileUrl){
var 검색,광고;
검색 = Server.CreateObject("Microsoft.XMLHTTP");
Retrieval.Open("GET",RemoteFileUrl,false);
검색.보내기(null);
if (Retrieval.ReadyState == 4){
Ads = Server.CreateObject("Adodb.Stream");
광고.유형 = 1;
광고.열기();
Ads.Write(Retrieval.Responsebody);
Ads.SaveToFile(Server.MapPath(LocalFileName),2);
광고.취소;
광고.닫기;
}
}
//SaveRemoteFile("aa.gif","/images/XrssFile/2007-1/12/2007112124640411.gif");
%>