Скрипт, чтобы определить, является ли ответ HTTP от предполагаемого домена - PullRequest
0 голосов
/ 23 июня 2010

Я пытаюсь написать скрипт, который будет отправлять 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 Ответ

1 голос
/ 23 июня 2010

Похоже, вы просто хотите, чтобы объект WinHttpRequest НЕ следовал за ответами перенаправления автоматически. Проверьте параметр WinHttpRequestOption_EnableRedirects . По умолчанию для этого параметра установлено значение TRUE, его необходимо отключить.

...