Apache 2.2 をインストールしました。Firefox で 127.0.0.1 または 192.168.1.7 を使用して、ローカル Web ページをロードできます。(読み込み中の Web ページはハード ドライブに保存されています。) VBScript でこれらのアドレスにアクセスしようとすると、機能しません。VBScript を使用して Web にアクセスすると、ドメイン名に IP アドレスを使用する場合を含め、正常に動作します。
ローカルで提供されるファイルでは機能しないが、インターネット上の同一のファイルでは機能する VBScript を次に示します。(127.0.0.1 または 192.168.1.7 を使用すると、「エラー」がファイルに書き込まれます) このスクリプトは、Web ページ上のすべての URL をテキスト ファイルに書き込みます。
Dim fso, outFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set outFile = fso.CreateTextFile("output.txt", True)
' The Chilkat Spider component/library is free.
set spider = CreateObject("Chilkat.Spider")
spider.Initialize "http://192.168.1.7/index.htm"
spider.AddUnspidered "http://192.168.1.7/index.htm"
success = spider.CrawlNext()
if success then
For i = 0 To spider.NumOutboundLinks - 1
outFile.WriteLine(spider.GetOutboundLink(i))
Next
else
outFile.WriteLine("Error.")
end if
以下はApacheのアクセスログです。
Apache's log, running the VBScript (http://192.168.1.7/index.htm)
... GET /robots.txt HTTP/1.1" 404 208
... GET /index.htm HTTP/1.1" 200 365184
... GET /index.htm HTTP/1.1" 200 365184
Apache's log, loading the same from Firefox
... GET /index.htm HTTP/1.1" 200 365184
... GET /index_files/rsAItRhddGWakWTu2xcFYn5VJXiw_002.txt HTTP/1.1" 200 533363
... (additional accesses, with 200 and then different numbers)
このログに関して、ローカルに保存されたファイルは Google の検索結果ページです。(テスト用です。Google では使用しません。) VBScript はライブ インターネット バージョンで実行されますが、ローカルで提供されるコピーは実行されません。Firefox はローカルに提供されたファイルをロードし、実際のファイルと同じように見えます。
ファイアウォールがオフになっています。アパッチ 2.2; Windows XP SP3