现有服务器http://123.45.67.89:200/a.htm,我想请求一下这个页面,然后分析返回结果。
我用winsock.conn "123.45.68.89",200
已经连结好,在winsock_connect中已经看到winsock.state=7(已连接),接下来发送请求时:
strData = "GET /a.htm HTTP/1.1" & vbCrLf
strData = strData & "Host: 123.45.67.89" & vbCrLf
strData = strData & "Accept: */*" & vbCrLf
strData = strData & "User-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)" & vbCrLf
strData = strData & "Pragma: no -cache" & vbCrLf
strData = strData & "cache -Control: no -cache" & vbCrLf
strData = strData & "Connection: Close" & vbCrLf & vbCrLfWinsock.SendData strData
之后检查winsock.state=7
但是在winsock_dataArrival中应该收到该网页的内容,但现在却收到:
HTTP/1.1 400 Bad Request
Content-Type: text/html
Date: Mon, 24 Jul 2006 04:44:16 GMT
Connection: close
Content-Length: 39<h1>Bad Request (Invalid Hostname)</h1>其中的系统时间明显是错误的,但是我仔细问过了,该系统时间既不是主机123.45.67.89的时间,也不是我的机器的时间,究竟是谁的时间我也不知道,为什么不能返回正确的信息呢?
我用winsock.conn "123.45.68.89",200
已经连结好,在winsock_connect中已经看到winsock.state=7(已连接),接下来发送请求时:
strData = "GET /a.htm HTTP/1.1" & vbCrLf
strData = strData & "Host: 123.45.67.89" & vbCrLf
strData = strData & "Accept: */*" & vbCrLf
strData = strData & "User-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)" & vbCrLf
strData = strData & "Pragma: no -cache" & vbCrLf
strData = strData & "cache -Control: no -cache" & vbCrLf
strData = strData & "Connection: Close" & vbCrLf & vbCrLfWinsock.SendData strData
之后检查winsock.state=7
但是在winsock_dataArrival中应该收到该网页的内容,但现在却收到:
HTTP/1.1 400 Bad Request
Content-Type: text/html
Date: Mon, 24 Jul 2006 04:44:16 GMT
Connection: close
Content-Length: 39<h1>Bad Request (Invalid Hostname)</h1>其中的系统时间明显是错误的,但是我仔细问过了,该系统时间既不是主机123.45.67.89的时间,也不是我的机器的时间,究竟是谁的时间我也不知道,为什么不能返回正确的信息呢?
目标主机名无效
strData = strData & "Host: 123.45.67.89 200" & vbCrLf
不知是不是这样写?
用抓包工具看
到底是什么格式才行
strData = strData & "Host: 123.45.67.89:200" & vbCrLf
理论上可能是这样