HttpWebRequestのを経由してURLを取得する場合、私は先サーバのIPアドレスを見ることができますか?
-
21-09-2019 - |
質問
次のように私は、URLを取得していたと
string url = "http://www.somesite.com/somepage.html"
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
私は先URLのIPアドレスを見ることができる方法はありますか? それは別のコールを必要としていますか?
おかげ
解決
System.Net.Dnsクラスを見てください。あなたはからホストのIPアドレスのリストを取得することができますDns.GetHostEntry()の方法。
他のヒント
Dns.GetHostEntry()
はあなたのサーバーのIPを取得することができますが、場合には、同じホストに対して複数のAレコードがある、あなたは(また、ラウンドロビンDNSとして知られている)、それらすべてを取得します。実際にWebサーバに接続するときただし、クライアントは、これらのIPアドレスのいずれかを選びます。
接続時にIPを使用したかを正確に知るためにさらさ方法はないようです。 www.justwentdown.com ので当社のWeb監視ソリューションに取り組んでいる間、私は、この情報を見つけました。この情報は、Web応答のプライベートフィールドに位置しており、
myHttpWebResponse.ResponseStream.Connection.ServerAddress
Connection
とServerAddress
は、内部/プライベートプロパティであるため、しかし、あなたは値を取得するためにリフレクションを使用する必要があります。私は<のhref = "http://blogs.msdn.com/b/davidebb/archive/2010/01/18/use-c-4-0-dynamic-to-drastically-simplify-your-private見つけました-reflection-code.aspx」のrel = "noreferrer">これらの状況に非常に有用であることがに、このソリューションます。
私は、.NET 4.0でそれをテストしてみました。それは少し厄介だと.NETの将来のバージョンで壊れて、私はユニットテストを追加することをお勧めしたい。
所属していません StackOverflow