2012-06-21 49 views
0

我試圖測試負載均衡器後面的網頁的可用性。所以我想編寫一個PowerShell腳本來分別從每個Web服務器加載一個頁面。問題是服務器使用主機頭,所以我不能手動指定IP地址,並且我不能只使用URL,因爲它可能會將負載平衡到不同的服務器。理想情況下,我正在尋找這樣的事情。在powershell中的http請求中輸入ip地址

$wc = New-Object net.webclient 
$wc.downloadString("10.0.0.1", "http://test.com/home.html") 

但我無法弄清楚如何做到這一點。我會推薦powershell,但如果有另一個可以完成這項工作的Windows實用程序,我會接受這個想法。

+0

將服務器的名稱用作$ wc.downloadString(「h ttp://servername/home.html」)? –

+0

不會工作,因爲我可能會被髮送到錯誤的Web服務器。試圖解析主機名可以給我一個任何一個Web服務器的IP地址。我想確切指定我連接的服務器。 – StaticMethod

+0

一個ping -a 10.0.0.1不解析這個ip的服務器名稱? –

回答

0

我知道這是一個古老的問題,但我最近需要自己完成這一點,並偶然發現這個尋找解決方案。我沒有在其他地方找到答案,但能夠爲自己找到答案,並希望分享,以防有人需要這樣做。

什麼你需要做的是通過IP呼叫前添加頁眉值,指定主機:

$wc = New-Object net.webclient 
$wc.Headers.Add("Host", "test.com") 
$wc.DownloadString("http://10.0.0.1/home.html") 

這告訴Web客戶端調用發送的頁面請求,同時還保證了其服務器請求成功解析,因爲它也具有主機頭信息。 *請記住,如果您正在根據自己的需要調整此功能,則每次進行WebClient調用時,Headers值都將被重置。所以一定要執行$ wc.Headers.Add()和$ wc.DownloadString()。

相關問題