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

ExitWindows 2001-11-17 08:32:31
我想做一个类似于“代理猎手”的软件,找出网上的代理服务器。
现在的问题是:已知一个IP和它的port,如何判断它是否 http 代理服务器?(即如何判断该端口是否提供http proxy连接?)
...全文
2531 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgc_7622 2002-02-05
  • 打赏
  • 举报
回复
2:如何判断对方是否 http 代理服务器(proxy)?
moony_blue 2001-11-29
  • 打赏
  • 举报
回复
呵呵 一下子吃了300分,太刺激了!! :))
ydprtm 2001-11-27
  • 打赏
  • 举报
回复
http代理用的port一般就是80,8080,3280吧。
MSVCer 2001-11-25
  • 打赏
  • 举报
回复
能给分了,我也把我的帖子结了去
ExitWindows 2001-11-25
  • 打赏
  • 举报
回复
给分了。
NowCan 2001-11-24
  • 打赏
  • 举报
回复
自己先回一下帖子就可以分了
guywei 2001-11-23
  • 打赏
  • 举报
回复
1
jerry_baimor 2001-11-22
  • 打赏
  • 举报
回复
bu cuo
cairuibin 2001-11-21
  • 打赏
  • 举报
回复
是给不了!
study_vc 2001-11-19
  • 打赏
  • 举报
回复
学习
xtky_limi 2001-11-18
  • 打赏
  • 举报
回复
旁听
Hover 2001-11-18
  • 打赏
  • 举报
回复
GZ
MSVCer 2001-11-18
  • 打赏
  • 举报
回复
是现在CSDN有毛病,给不了分
moony_blue 2001-11-18
  • 打赏
  • 举报
回复
不给分?难道是调试不成功么?
ExitWindows 2001-11-18
  • 打赏
  • 举报
回复
还是给不了分?
moony_blue 2001-11-18
  • 打赏
  • 举报
回复
:~))
MSVCer 2001-11-18
  • 打赏
  • 举报
回复
moony_blue 2001-11-17
  • 打赏
  • 举报
回复
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); //通过代理连接主站不成功
}
ExitWindows 2001-11-17
  • 打赏
  • 举报
回复
moony_blue(发呆的深蓝):
再打扰一下。
GetServerHostName(),GetPort(),在这里会得到谁的IP及Port? buff 中最后一般会得到一个形如什么样的结果?
moony_blue 2001-11-17
  • 打赏
  • 举报
回复
//通过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代理服务。
加载更多回复(2)

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧