VB 代理验证

nbayang520 2010-05-07 01:47:50
如果利用VB去验证一个代理服务器是否可用,并且可以返回响应的时间!大侠赐教,本人刚接触这方面的知识,小弟分不多,呵呵!希望大侠回帖
...全文
268 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
nbayang520 2010-05-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 veron_04 的回复:]
引用 1 楼 caozhy 的回复:
将代理服务器作为一个web服务器对待,直接发送http请求,看看能否返回。

支持
[/Quote]
能说的具体点么,不要跟我说 用WEBBROWSER去发送,Winscok 可以发送,Winscok 我不知道如何设置成代理,或者有其他更好的方法吗?
贝隆 2010-05-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caozhy 的回复:]
将代理服务器作为一个web服务器对待,直接发送http请求,看看能否返回。
[/Quote]
支持
threenewbee 2010-05-07
  • 打赏
  • 举报
回复
将代理服务器作为一个web服务器对待,直接发送http请求,看看能否返回。
nbayang520 2010-05-07
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 supermanking 的回复:]
引用 10 楼 nbayang520 的回复:
SupermanKing 哥,如果我想在中间加一层代理如何去做呢?赐教,小弟是菜鸟.....

设置注册表值呀
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections
[/Quote]

恩,我已经知道了如何设置代理了,我结贴了!(*^__^*) 嘻嘻……,不要闲分少哦
现在还是人类 2010-05-07
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 nbayang520 的回复:]
SupermanKing 哥,如果我想在中间加一层代理如何去做呢?赐教,小弟是菜鸟.....
[/Quote]
设置注册表值呀
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections
现在还是人类 2010-05-07
  • 打赏
  • 举报
回复
还是翻译成VB的给你把

Dim XMLObject As Object
Dim SendStr As String
Dim ReturnText As String
Dim ReturnBody() As Byte
Dim lResolve As Long
Dim lConnect As Long
Dim lSend As Long
Dim lReceive As Long

lResolve = 2 * 1000 '2秒 域名分析超时
lConnect = 2 * 1000 '2秒 连接站点超时
lSend = 3 * 1000 '3秒 发送数据时间超时
lReceive = 2 * 1000 '2秒 等待反馈时间超时
Set XMLObject = CreateObject("MSXML2.ServerXMLHTTP")
XMLObject.setTimeouts lResolve, lConnect, lSend, lReceive
SendStr = "http://" & lpServerIP & "/ServerTime.asp"
XMLObject.open "GET", SendStr, False
XMLObject.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"
XMLObject.send
If XMLObject.Status <> 200 Then
NetworkState = False
Else
NetworkState = True
ReturnBody = XMLObject.responseBody
ReturnText = StrConv(ReturnBody, vbUnicode)
'...
End If
nbayang520 2010-05-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 supermanking 的回复:]
C/C++ code

MSXML2::IServerXMLHTTPRequestPtr XMLObject;
MCString SendStr;
MCString ReturnText;
VARIANT ReturnBody;
//SYSTEMTIME SystemTimeValue;
long lRe……
[/Quote]
SupermanKing 哥,如果我想在中间加一层代理如何去做呢?赐教,小弟是菜鸟.....
现在还是人类 2010-05-07
  • 打赏
  • 举报
回复

MSXML2::IServerXMLHTTPRequestPtr XMLObject;
MCString SendStr;
MCString ReturnText;
VARIANT ReturnBody;
//SYSTEMTIME SystemTimeValue;
long lResolve = 2 * 1000; //2秒 域名分析超时
long lConnect = 2 * 1000; //2秒 连接站点超时
long lSend = 3 * 1000; //3秒 发送数据时间超时
long lReceive = 2 * 1000; //2秒 等待反馈时间超时
XMLObject.CreateInstance("MSXML2.ServerXMLHTTP");
XMLObject->setTimeouts(lResolve,lConnect,lSend,lReceive);
SendStr = "http://";
SendStr &= lpServerIP;
SendStr &= "/ServerTime.asp";
XMLObject->open(_bstr_t("GET"),_bstr_t(*SendStr),_variant_t("false"));
XMLObject->setRequestHeader(_bstr_t("CONTENT-TYPE"),_bstr_t("application/x-www-form-urlencoded"));
XMLObject->send();
if(XMLObject->status!=200){
NetworkState = FALSE;
}else{
NetworkState = TRUE;
XMLObject->get_responseBody(&ReturnBody);
ReturnText = BodyToChars(&ReturnBody);
ReturnText.Erase();
...
}


VB里大同小异
nbayang520 2010-05-07
  • 打赏
  • 举报
回复
sock.RemoteHost = "www.baidu.com"
sock.RemotePort = "80"
sock.Connect
While (sock.State <> sckConnected)
DoEvents
Wend





Dim strCommand As String
strCommand = "GET /index.php HTTP/1.0" & vbCrLf
strCommand = strCommand & "Accept: */*" & vbCrLf
strCommand = strCommand & "Referer: http://www.baidu.com/" & vbCrLf
strCommand = strCommand & "Accept -Language: zh -cn" & vbCrLf
strCommand = strCommand & "Content-Type: application/x-www-form-urlencoded" & vbCrLf
strCommand = strCommand & "Accept-Encoding: gzip, deflate" & vbCrLf
strCommand = strCommand & "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; http://bsalsa.com) ; .NET CLR 2.0.50727)" & vbCrLf
strCommand = strCommand & "Host: www.baidu.com" & vbCrLf
strCommand = strCommand & "Connection: Keep-Alive" & vbCrLf
sock.SendData strCommand


为什么得不到源代码啊..

Private Sub sock_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
sock.GetData strData, vbString
Text1.Text = Text1.Text & strData
End Sub
nbayang520 2010-05-07
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 supermanking 的回复:]
引用 5 楼 nbayang520 的回复:
用 XMLHTTP 容易出现假死吧!不想用这个

那是你对XMLHTTP还不了解,之所以有你所谓的假死,是因为你没有作超时处理。
使用 MSXML2.ServerXMLHTTP 就能对超时进行控制。
超时控制不好,即使你用WinSock也是会这样的
[/Quote]

谢谢 SupermanKing 的指导,我去研究下。。。
现在还是人类 2010-05-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 nbayang520 的回复:]
用 XMLHTTP 容易出现假死吧!不想用这个
[/Quote]
那是你对XMLHTTP还不了解,之所以有你所谓的假死,是因为你没有作超时处理。
使用 MSXML2.ServerXMLHTTP 就能对超时进行控制。
超时控制不好,即使你用WinSock也是会这样的
nbayang520 2010-05-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 supermanking 的回复:]
代理协议有几种,比较常用的是 HTTP代理 和Sock4\Sock5,
如果你想测试所有类型的代理,工程量就大点,单纯是HTTP代理,
那就很简单,将IE的HTTP代理设置好,然后通过XMLHTTP随便访问
一个Internet上的比较稳定的网页,成功就说明代理没问题。
[/Quote]
用 XMLHTTP 容易出现假死吧!不想用这个
现在还是人类 2010-05-07
  • 打赏
  • 举报
回复
代理协议有几种,比较常用的是 HTTP代理 和Sock4\Sock5,
如果你想测试所有类型的代理,工程量就大点,单纯是HTTP代理,
那就很简单,将IE的HTTP代理设置好,然后通过XMLHTTP随便访问
一个Internet上的比较稳定的网页,成功就说明代理没问题。

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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