我正在尝试在C#中找到响应我的WebRequest的ip地址(不是主机名)。我不想进行DNS解析,因为它们返回的DNS记录不是响应请求的服务器。例如:
客户 - >负载均衡器 - > Web服务器
DNS服务器将使用Load Balancer的IP进行响应。假设响应的Web服务器没有通过Load Balancer返回,那么IP地址将是我想要找到的实际Web服务器。
答案 0 :(得分:1)
您是否可以访问服务器端代码?或者到Web服务器配置?您可以随时将机器IP或您想要的任何标识符放在自定义标头中,并在客户端上查找。
至于你原来的问题,我不相信HttpWebRequest / HttpWebResponse类在任何地方都会公开信息。
答案 1 :(得分: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();