S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

VC下如何利用代理服务器进行信息交换

Posted on 2009-10-15 23:06 S.l.e!ep.¢% 阅读(871) 评论(0)  编辑 收藏 引用 所属分类: VC

VC下如何利用代理服务器进行信息交换

自从研究如何使用假IP刷新流量之后,就想着如何在客户端连接代理服务器,通过代理服务器来访问目标主机,从而达到变换IP刷新网站流量的目的.刚才搜索了下,基本上都是用VC来开发代理服务器,我大致看了一下,起始他是做了一个数据转发的功能,客户端请求代理服务器,代理服务器截获数据,分析主机和端口,然后向目的主机请求,接受目的主机的相应,然后转发数据给客户端.不过他全部是利用了比较底层的socket通信,这里不是我们研究的范围.今天说的是如何在已有的HTTP类中设置参数,从而达到连接代理服务器访问目的主机的目的.主要是这个类
CInternetSession(
   LPCTSTR pstrAgent = NULL,//名字,可以自己定义
   DWORD_PTR dwContext = 1,//默认
   DWORD dwAccessType = PRE_CONFIG_INTERNET_ACCESS,//这里就要修改了,呵呵
   LPCTSTR pstrProxyName = NULL,//根据type的不同而不同
   LPCTSTR pstrProxyBypass = NULL,//代理是否需要口令
   DWORD dwFlags = 0 //默认
);
dwAccessType这里我们利用INTERNET_OPEN_TYPE_PROXY  ,然后设置pstrProxyName为
61.129.102.207:8080,前面是代理服务器的IP,后门是端口,中间用:隔开,这样连接
就支持了代理,我在网上还查到一种用代理的方式,不过他的那个是全局的,顺便也贴下
INTERNET_PROXY_INFO ipi;
ipi.dwAccessType = INTERNET_OPEN_TYPE_PROXY;
ipi.lpszProxy = _T("hogehoge.proxy.com:8080");
ipi.lpszProxyBypass = NULL;
HRESULT hr = ::UrlMkSetSessionOption(INTERNET_OPTION_PROXY,
 (void *)&ipi, sizeof(ipi), 0); 
这里就不作说明了,下面是我的一个测试代码
 CHttpFile* myhttp=NULL;
 CString temp,total;
 CInternetSession *mysession=new CInternetSession
("wangke",1,INTERNET_OPEN_TYPE_PROXY,_T("61.129.102.208:8080"),NULL,0);
 try{
  myhttp=(CHttpFile*)mysession->OpenURL
("http://www.020114.org/timeacaa.asp");
  while(myhttp->ReadString(temp))
   total+=temp;
  myhttp->Close();
  mysession->Close();
  delete myhttp;
  delete mysession;
  GetDlgItem(IDC_EDIT1)->SetWindowText(total);
  total.Empty();
 }
 catch(CInternetException &e)
 {
  char errs[MAX_PATH]={0};
  e.GetErrorMessage(errs,MAX_PATH,NULL);
  AfxMessageBox(errs);
 }
在win2006+vc6.0测试通过

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理