CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

如何判断对方是否 http 代理服务器(proxy)?[ExitWindows求教]

楼主ExitWindows(void)2001-11-17 20:32:31 在 VC/MFC / 基础类 提问

    我想做一个类似于“代理猎手”的软件,找出网上的代理服务器。  
      现在的问题是:已知一个IP和它的port,如何判断它是否   http   代理服务器?(即如何判断该端口是否提供http   proxy连接?) 问题点数:300、回复次数:22Top

1 楼ExitWindows(void)回复于 2001-11-17 20:32:44 得分 0

请指教。Top

2 楼Jneu(沧海桑田)回复于 2001-11-17 21:43:50 得分 0

g~zTop

3 楼moony_blue(发呆的深蓝)回复于 2001-11-17 21:54:39 得分 300

//通过HTTP方式代理  
   
  if(   !ClientSock.Connect(   g_ProxyInfo.m_strProxyIP,g_ProxyInfo.m_nProxyPort)   )  
  {  
  m_sError   =   _T("不能连接到代理服务器!");  
  ClientSock.Close();  
  return   FALSE;  
  }  
  char   buff[600];  
  sprintf(   buff,   "%s%s:%d%s","CONNECT   ",GetServerHostName(),GetPort(),"   HTTP/1.0\r\nUser-Agent:   MyApp/0.1\r\n\r\n");  
  ClientSock.Send(buff,strlen(buff));   //发送请求  
  memset(buff,0,600);  
  ClientSock.Receive(buff,600);  
  if(strstr(buff,   "200   Connection   established")   ==   NULL)   //连接不成功  
  {  
  m_sError   =   _T("通过代理连接主站不成功!");  
  ClientSock.Close();  
  return   FALSE;  
  }  
   
   
  大多数的代理服务器HTTP代理的端口为8080,先和它做一个tcp连接,接着发送CONNECT命令,获得相应的反馈后就可以得知其是否提供HTTP代理服务。Top

4 楼ExitWindows(void)回复于 2001-11-17 22:26:01 得分 0

moony_blue(发呆的深蓝):  
      再打扰一下。  
      GetServerHostName(),GetPort(),在这里会得到谁的IP及Port?   buff   中最后一般会得到一个形如什么样的结果?Top

5 楼moony_blue(发呆的深蓝)回复于 2001-11-17 22:44:46 得分 0

GetServerHostName(),GetPort()   分别是目标服务器的地址与端口  
   
  关于反馈BUFF的内容可参看RFC1945、2068   以及   google上搜索"draft-luotonen-web-proxy-t  
  unneling-01.txt"  
   
  下边是一些典型的反馈,仅供参考:  
   
  if(   strstr(buff,   "Error   403")   )  
  {  
          return   GoError(PROXYERROR_PROXYDISABLE);     //代理服务器拒绝请求  
  }  
   
  if(   strstr(buff,   "407   Proxy   authentication   required")   )     //需要身份验证  
  {  
      return   GoError(PROXYERROR_USERNAMEORPASSWORD);     //用户身份校检不成功  
  }  
  if(   strstr(buff,   "Connection   refuesed")   )  
  {  
      return   GoError(PROXYERROR_CONNECTHOSTSERVER);     //通过代理连接主站不成功  
  }  
  if(   strstr(buff,   "Access   Denied")   )  
  {  
      return   GoError(PROXYERROR_USERNAMEORPASSWORD);     //用户身份校检不成功  
  }  
  if(strstr(buff,   "Connection   refused   by   Remote   Host")   )  
  {  
      return   GoError(PROXYERROR_CONNECTHOSTSERVER);     //通过代理连接主站不成功  
  }Top

6 楼ExitWindows(void)回复于 2001-11-18 10:22:27 得分 0

还是给不了分?Top

7 楼moony_blue(发呆的深蓝)回复于 2001-11-18 10:32:15 得分 0

不给分?难道是调试不成功么?Top

8 楼MSVCer(家宝)回复于 2001-11-18 10:35:14 得分 0

是现在CSDN有毛病,给不了分Top

9 楼Hover_cn(翔)(:public IUnknown)回复于 2001-11-18 10:39:40 得分 0

GZTop

10 楼xtky_limi(窗外细雨)回复于 2001-11-18 10:48:12 得分 0

旁听Top

11 楼MSVCer(家宝)回复于 2001-11-18 16:24:51 得分 0

推Top

12 楼moony_blue(发呆的深蓝)回复于 2001-11-18 16:36:33 得分 0

:~))Top

13 楼study_vc(博)回复于 2001-11-19 19:31:39 得分 0

学习Top

14 楼cairuibin()回复于 2001-11-21 00:35:06 得分 0

是给不了!Top

15 楼jerry_baimor(崇拜starfish)回复于 2001-11-22 12:47:28 得分 0

bu   cuoTop

16 楼guywei(测试)回复于 2001-11-23 23:46:07 得分 0

1Top

17 楼NowCan(城市浪人)回复于 2001-11-24 10:16:02 得分 0

自己先回一下帖子就可以分了Top

18 楼ExitWindows(void)回复于 2001-11-25 19:56:22 得分 0

给分了。Top

19 楼MSVCer(家宝)回复于 2001-11-25 20:23:20 得分 0

能给分了,我也把我的帖子结了去Top

20 楼ydprtm(ydprtm)回复于 2001-11-27 13:39:10 得分 0

http代理用的port一般就是80,8080,3280吧。  
  Top

21 楼moony_blue(发呆的深蓝)回复于 2001-11-29 15:43:37 得分 0

呵呵   一下子吃了300分,太刺激了!!   :))Top

22 楼zgc_7622(.nlk)回复于 2002-02-05 14:26:09 得分 0

2:如何判断对方是否   http   代理服务器(proxy)?Top

相关问题

  • proxy代理服务器?
  • 关于HTTP服务器
  • 请问Web服务器与HTTP服务器有什么区别?
  • 怎么建立一个http服务器!!
  • http 500 内部服务器错误
  • HTTP 500 - 内部服务器错误
  • HTTP 500 内部服务器错误 (急)
  • HTTP 500 - 内部服务器错误
  • HTTP 500 - 内部服务器错误
  • 求HTTP代理服务器的代码!!

关键词

  • 服务器
  • 连接
  • 端口
  • 代理
  • proxyerror
  • buff
  • clientsock
  • strstr
  • 判断
  • getserverhostname

得分解答快速导航

  • 帖主:ExitWindows
  • moony_blue

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo