次のように URL を取得するとします。
string url = "http://www.somesite.com/somepage.html"
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
宛先 URL の IP アドレスを確認する方法はありますか? 別途電話が必要ですか?
ありがとう
次のように URL を取得するとします。
string url = "http://www.somesite.com/somepage.html"
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
宛先 URL の IP アドレスを確認する方法はありますか? 別途電話が必要ですか?
ありがとう
Dns.GetHostEntry()
サーバーの IP を取得できますが、同じホストに複数の A レコードがある場合は、それらすべてを取得します (ラウンドロビン DNS とも呼ばれます) 。ただし、実際に Web サーバーに接続するとき、クライアントはこれらの IP のいずれかを選択します。
接続時にどの IP が使用されたかを正確に知るための公開された方法はないようです。この情報は、 www.justwentdown.comで Web 監視ソリューションに取り組んでいるときに見つけました。この情報は、Web 応答のプライベート フィールドにあります。
myHttpWebResponse.ResponseStream.Connection.ServerAddress
ただし、Connection
とServerAddress
はプライベート/内部プロパティであるため、リフレクションを使用して値を取得する必要があります。このような状況では、このソリューションが非常に役立つことがわかりました。
.NET 4.0 でテストしました。少し面倒で、.NET の将来のバージョンでは壊れる可能性があるため、単体テストを追加することをお勧めします。
System.Net.Dns クラスを見てください。ホストの IP アドレスのリストは、Dns.GetHostEntry()メソッドから取得できます。