假设我正在检索一个网址,如下所示:
string url = "http://www.somesite.com/somepage.html"
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
有什么方法可以查看目标网址的 IP 地址吗?
需要单独调用吗?
Thanks
虽然Dns.GetHostEntry()
可以获取服务器的 IP,如果同一主机有多个 A 记录,您将获取全部(也称为循环 DNS)。然而,当实际连接到 Web 服务器时,客户端会选择这些 IP 之一。
似乎没有一种公开的方法可以准确找出连接时使用的 IP。我在开发我们的网络监控解决方案时发现了此信息www.justwentdown.com http://www.justwentdown.com。此信息位于网络响应的私有字段中,
myHttpWebResponse.ResponseStream.Connection.ServerAddress
然而,因为Connection
and ServerAddress
是私有/内部属性,您需要使用反射来获取值。我发现了这个解决方案 http://blogs.msdn.com/b/davidebb/archive/2010/01/18/use-c-4-0-dynamic-to-drastically-simplify-your-private-reflection-code.aspx在这些情况下非常有用。
我已经用.NET 4.0 对其进行了测试。它有点混乱,并且可能会破坏 .NET 的未来版本,因此我建议添加单元测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)