HttpWebRequestのを経由してURLを取得する場合、私は先サーバのIPアドレスを見ることができますか?

StackOverflow https://stackoverflow.com/questions/1365586

質問

次のように私は、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
ConnectionServerAddressは、内部/プライベートプロパティであるため、

しかし、あなたは値を取得するためにリフレクションを使用する必要があります。私は<の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の将来のバージョンで壊れて、私はユニットテストを追加することをお勧めしたい。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top