我正在尝试找到在C#中响应我的WebRequest的IP地址(而不是主机名)。我不想进行DNS解析,因为有些情况下DNS记录返回的不是响应请求的服务器。例如:
客户端 -> 负载均衡器 -> Web服务器
DNS服务器将响应负载均衡器的IP。假设响应的Web服务器没有经过负载均衡器,则IP地址将是实际的Web服务器,这就是我要查找的内容。
我正在尝试找到在C#中响应我的WebRequest的IP地址(而不是主机名)。我不想进行DNS解析,因为有些情况下DNS记录返回的不是响应请求的服务器。例如:
客户端 -> 负载均衡器 -> Web服务器
DNS服务器将响应负载均衡器的IP。假设响应的Web服务器没有经过负载均衡器,则IP地址将是实际的Web服务器,这就是我要查找的内容。
我认为你需要进行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();