3

C#でWebRequestに応答したIPアドレス(ホスト名ではない)を見つけようとしています。DNS解決を行いたくないのは、返されるDNSレコードが、要求に応答するサーバーではない場合だからです。例:

クライアント->ロードバランサー->Webサーバー

DNSサーバーは、ロードバランサーのIPで応答します。応答するWebサーバーがロードバランサーを経由しないと仮定すると、IPアドレスは、私が見つけようとしている実際のWebサーバーになります。

4

2 に答える 2

1

OSIに浸り、独自のソケットを作成して利用する必要があると思います。
そうすれば、次のようにRemoteEndPointプロパティにアクセスできるようになります(少なくともソケットが接続された後、または接続された後)。

Socket sprocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sprocket.Connect("www.google.com", 80);
string IPAddressOfRespondingServer = ((IPEndPoint)sprocket.RemoteEndPoint).Address.ToString();

于 2009-12-29T06:02:52.107 に答える
1

サーバー側のコードにアクセスできますか? またはWebサーバーの設定に?マシンの IP または任意の識別子をいつでもカスタム ヘッダーに配置し、クライアントでそれを探すことができます。

元の質問に関しては、HttpWebRequest/HttpWebResponse クラスによって情報がどこにも公開されているとは思いません。

于 2009-12-17T08:42:48.043 に答える