3

我试图在 C# 中找到响应我的 WebRequest 的 IP 地址(不是主机名)。我不想进行 DNS 解析,因为它们是返回的 DNS 记录不是响应请求的服务器的情况。例如:

客户端 -> 负载均衡器 -> Web 服务器

DNS 服务器将使用负载均衡器的 IP 进行响应。假设响应的 Web 服务器没有通过负载均衡器返回,那么 IP 地址将是我要查找的实际 Web 服务器。

4

2 回答 2

1

您可以访问服务器端代码吗?还是给web服务器配置?您始终可以将机器 IP 或您想要的任何标识符放在自定义标头中并在客户端上查找。

至于您最初的问题,我认为 HttpWebRequest/HttpWebResponse 类不会在任何地方公开信息。

于 2009-12-17T08:42:48.043 回答
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 回答