0

HTTP「GET」をURLに送信し、応答が同じドメインからのものかどうかを判断するスクリプトを作成しようとしています。

私はVBSとWinHttp.WinHttpRequest.5.1オブジェクトで遊んでいます。残念ながら、これでは応答が正確にどこから来たのかを知ることができません。

応答ヘッダーを解析しようとしましたが、Webサーバーがサーバーのドメインを含む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))

どうもありがとう。

4

1 に答える 1

1

WinHttpRequest オブジェクトがリダイレクト応答を自動的に追跡しないようにしたいだけのように思えます。WinHttpRequestOption_EnableRedirectsオプションを確認してください。これはデフォルトで TRUE に設定されているため、オフにする必要があります。

于 2010-06-22T20:57:52.373 に答える