2017-06-26 56 views
0

私はTCP接続の自動化スクリプトを書いていますが、私は質問があります。Powershell(Invoke-WebRequest)の宛先IPアドレスを取得する

Invoke-WebRequest google.com 

問題は、私は、このコマンドを呼び出す際に、送信先のIPアドレスは常に異なっているので、私は次のようにコマンドを使用することはできません ':あなたは(たとえば)を呼び出したときに、宛先IPアドレスを取得するためのオプションがあり、 'テスト接続'。それ以上の説明を聞きたい。 Googleに複数の公開アドレスがあることはわかっていますが、Invoke-WebRequest、またはTest-Connectionに電話すると、その違いは何ですか?

例:Test-Connectionコマンドから

1. Destination IP from wireshark capture

2. IPアドレス: google.com 172.217.18.78

挨拶

+0

Invoke-WebRequestから取得する方法はありませんでしたが、基礎となる.Net-Librariesを使用して取得する方法があります。たとえば、この回答を参照してください:https://stackoverflow.com/questions/6655713/how-to-get-ip-address-of-the-server-that-httpwebrequest-connected-to – Zerqent

答えて

-1

Googleは巨大ユーザーベースを持っています。彼らは堅牢な接続といくつかの負荷分散を提供するので、複数のアドレスを介して到達可能であることを望んでいます。この技術はDNS Round Robinと呼ばれています。複数のIPアドレスのいずれかが動作しない場合、ほとんどの最新のブラウザはautomatically try and useの他のアドレスになります。

特定のIPへの接続をテストする場合は、名前の参照を行い、結果の1つを選択することができます。同様に、

# Get a list of all Google IPs 
$googles = [Net.Dns]::GetHostAddresses("www.google.com") 
# Use IP address for the 1st entry 
test-connection $googles[0].IPAddressToString 
+0

ありがとう、これは非常に便利です!しかし、私はまだあなたが "Invoke-WebRequest www.google.com"を呼んだ場合、このコマンドを呼び出すと特定のDNSアドレスに接続するのではないかと疑問に思っています。そして私はその特定のアドレスに到達したいと思います。どのように私はそれらのすべてからその特定のアドレスを選ぶでしょうか? – booyah

+0

@booyahこれが返すリストはあなたのブラウザで繰り返されますが、どちらが選択されるかを知る信頼できる方法はありません。いつでもIPを選択し、ホスト名の代わりにIPに対して 'Test-Connection'を実行できますか? – ConnorLSW

+0

@booyahなぜGoogleの特定のアドレスに興味があるのか​​、さらに詳しく説明してください。私の[XY](https://meta.stackexchange.com/q/66377)の感覚はうずくまる。 – vonPryz

関連する問題