如果利用VB去验证一个代理服务器是否可用,并且可以返回响应的时间!大侠赐教,本人刚接触这方面的知识,小弟分不多,呵呵!希望大侠回帖
解决方案 »
- vb 如何解压缩linux 中用tar命令压缩的 gzip文件 后缀.gz
- HTML怎样调用在OCX usercontrol里面的过程和函数呢?
- 提示查询语句(对vfp数据表查询)错误,错误在哪里?怎么改?
- 您还为打印预览发愁吗?
- 無法理解的問題(關於兩個數字相加後數字像字符串一樣串到一起)
- 100分求好的VBA教程书籍下载地址!
- 好困惑啊,为什么说“对象变量未设置呢?”
- ###用file.path=dir.path可以在filelist控件中显示选中目录的所有文件,有没有办法使之只显示指定后缀的文件,如txt文件?###
- VB打印问题
- 怎样动态改变窗体上控件的大小与位置?
- VB6如何关闭所有程序.
- 严重求助!FLASH内数据读取办法……莫乱顶会得分的……1
如果你想测试所有类型的代理,工程量就大点,单纯是HTTP代理,
那就很简单,将IE的HTTP代理设置好,然后通过XMLHTTP随便访问
一个Internet上的比较稳定的网页,成功就说明代理没问题。
使用 MSXML2.ServerXMLHTTP 就能对超时进行控制。
超时控制不好,即使你用WinSock也是会这样的
谢谢 SupermanKing 的指导,我去研究下
sock.RemotePort = "80"
sock.Connect
While (sock.State <> sckConnected)
DoEvents
WendDim 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
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里大同小异
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
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections