用于确定HTTP响应是否来自目标域的脚本

时间:2010-06-22 20:47:05

标签: http scripting vbscript winhttprequest

我正在尝试编写一个脚本,将HTTP“GET”发送到URL,然后确定响应是否来自同一个域。

我一直在玩VBS和WinHttp.WinHttpRequest.5.1对象。可悲的是,这并没有让我能够准确地获得响应的来源。

我尝试解析响应标头,但只有在网络服务器设置了包含服务器域的cookie时才会产生结果。例如(在我下面的脚本中)“google.com”将通过,但“avg.com”将失败。

我对目前的剧本不太满意,如果有人知道更好的方法,我很乐意改变。

我目前的剧本:

  Dim objWinHttp
  Dim strContent, strURL
  Set objWinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
  objWinHttp.SetTimeouts 29000, 29000, 29000, 29000
  objWinHttp.Option(0) = "Website_monitor_light/1.0"
  objWinHttp.Option(6) = True
  If (InStr(WScript.Arguments.Item(0), "www.") = 1) Then
   URL = "http://" & WScript.Arguments.Item(0)
  Else
   URL = "http://www." & WScript.Arguments.Item(0)
  End If
  objWinHttp.Open "GET", URL
  On Error Resume Next
  objWinHttp.Send()
  If (objWinHttp.Status = 200) Then
   strContent = objWinHttp.GetAllResponseHeaders
  End If
  Wscript.Quit InStr(strContent, "domain=." & Mid(URL,12))

万分感谢。

1 个答案:

答案 0 :(得分:1)

听起来您只是希望WinHttpRequest对象不会自动遵循重定向响应。查看WinHttpRequestOption_EnableRedirects选项。默认设置为TRUE,您需要将其关闭。