【问题标题】:Find IP address of Host查找主机的 IP 地址
【发布时间】:2015-09-29 15:01:17
【问题描述】:

我正在使用WebBrowser 控件,当用户导航到例如http://www.google.co.uk 时,我想显示用户“连接”到的主机的IP 地址。

目前,我等待DocumentComplete 事件触发,然后使用Dns.GetHostEntry("http://www.google.co.uk");,但这会返回一个AddressList,它是一个IP 地址数组,而不是用户连接的实际IP。在本例中,返回 16 个 IPv4 地址。

如何获取用户连接的 IP 地址而不是所有可用地址?

代码sn-p:

     private void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
     {
            IPHostEntry Host = Dns.GetHostEntry("http://www.google.co.uk");
            foreach(var ip in Host.AddressList)
                 Debug.WriteLine("Host address list: " + ip);
     }

【问题讨论】:

  • 当我运行Dns.GetHostEntry("www.google.co.uk")(没有http)时,我只得到一个IP(74.125.21.94),即在查询IP之前我会删除http://

标签: c# webbrowser-control ip-address


【解决方案1】:

查询IP前去掉httphttps

var sample_hosts = new[] {"http://www.google.co.uk", "https://www.google.co.uk", "http://www.amazon.com"};
foreach (var host in sample_hosts)
{
    var queryhost = host.Replace("http://", "").Replace("https://", "");
    var hostEntry = Dns.GetHostEntry(queryhost);
    foreach (var ip in hostEntry.AddressList)
    {
        Console.WriteLine("IP for {0}: {1}", queryhost, ip);
    }
}

打印

IP for www.google.co.uk: 64.233.176.9
IP for www.google.co.uk: 64.233.176.9
IP for www.amazon.com: 176.32.98.166

但是由于您使用的是 URL,那么您还可以执行类似的操作

var url = "http://www.amazon.co.uk/My-Story-Steven-Gerrard/dp/1405923385/ref=zg_bs_books_5";
var uri = new Uri(url);
Console.WriteLine(uri.Host);

返回实际主机:

www.amazon.co.uk

【讨论】:

  • 遗憾的是,这仍然为我返回 16 个 IP 地址(在 62.253.72.[140 到 187)范围内)。当我使用可以在 Internet 上找到的一堆“IP 查找器”检查www.google.co.uk 时,结果也完全不同。是否有另一种方法可以找到用户导航到的主机 IP?
  • @TEK 考虑澄清您的目标(甚至可能在单独的帖子中 - 这显然被您发布非工作代码所污染)。为什么您需要知道用于返回原始 HTML 页面的确切 IP?
  • @AlexeiLevenkov 有人可能想知道确切 IP 的原因是出于法律原因。我将浏览器指向任意 URL,然后在以太网中的某处连接到具有 IP 地址的服务器。一些主机有很多 IP 地址,所以如果我可能需要确切地证明哪台服务器(我知道服务器可能有很多公共 IP 地址,但肯定有某种方法可以获取我第一次建立该连接时分配的 IP 地址)。有时准确地说很好。
  • 也许您可以尝试类似this - 尝试获取活动 TCP 连接。
猜你喜欢
  • 1970-01-01
  • 2016-01-21
  • 1970-01-01
  • 1970-01-01
  • 2013-02-21
  • 1970-01-01
  • 2014-12-19
  • 2014-12-02
  • 2022-06-14
相关资源
最近更新 更多