【问题标题】:How can I capture all outgoing requests to a port to a port on my local machine?如何将所有传出请求捕获到本地计算机上的端口?
【发布时间】:2012-05-03 16:39:24
【问题描述】:

我想捕获连接端口 11111 的所有尝试,并将它们重定向到在我的本地计算机上运行的 Java 应用程序。

我打算用它来映射网络请求。

所以我想在浏览器中输入http://google.com:11111

然后将该请求重定向到我在端口 11111 上运行的本地应用程序。我的本地应用程序需要知道请求的 url。

我正在运行 Windows 7 PC,因此需要 Windows(不是 linux)解决方案。

编辑:额外信息。

我想要这个的原因是我希望能够通过 http-tunnel 访问一堆 Intranet Web 服务。我希望能够从我的家用机器上执行http://someintranetserver:11111 并将其路由到隧道上。我正在通过的代理不支持 CONNECT 方法。

编辑:更多信息。

我试图将所有请求重定向到的程序是我正在开发的 java 应用程序,所以理想情况下我想要一个 java 解决方案来解决这个问题。

如果 java 无法做到这一点,可以重定向到我的本地应用程序的第三方应用程序就足够了。

干杯, 彼得

【问题讨论】:

  • 这不是 Java 问题。您可能会考虑修改您的标签,以更多地关注您需要帮助的人,这将是 Windows 用户。
  • @Ryan Stewart:没有 java 方法可以做到这一点吗?
  • 我的意思是 Java 似乎与您的问题无关。您正在谈论重新配置 Windows、您的网卡或其他一些网络设备以不同于通常的方式中继流量。如果您认为 Java 以某种方式涉及,那么也许我不明白您在问什么。
  • @Ryan Stewart:我理想的解决方案是在我的项目中添加一些 java 代码,这样当我的 java 应用程序启动时,它会捕获所有连接到端口 X 上的外部服务器的尝试。如果 java 无法这样做然后我将使用其他一些工具,但一些 java 代码是我的首选解决方案。
  • 我明白了。鉴于 Java 可以通过 java.lang.Process 执行任意命令,那么是的,您可以通过执行适当的操作系统命令来使用 Java 执行此操作。鉴于您的目标是 Windows,我认为您必须重新启动才能使您所说的更改生效。我认为您可以在 Linux 上轻松完成(或重新启动)。除此之外,考虑到我不使用 Java 进行大量繁重的网络工作,我非常有信心在纯 Java 中你不会得到类似的东西。

标签: java windows redirect port capture


【解决方案1】:

听起来最简单的解决方案是设置一个 HTTP 代理并通过它路由所有 HTTP 流量。在 Windows 中,您可以直接在控制面板中的网络连接上设置代理。 Firefox / chrome 可能有自己的设置。至于Java中的代理实现,请在谷歌周围搜索。有吨。喜欢这个:http://dev.littleshoot.org/littleproxy/

这可能不是您所希望的。我不确定 Java 是否能够以您想要的方式解决这个问题——您可能需要使用 C# 或更容易访问操作系统内部的东西。

也许您可以详细说明为什么您想这样做...也许有更好、更简单的方法来实现您的最终目标。

【讨论】:

  • 如果我卡住了,我可能会从这个项目中窃取一些代码。我希望在不实现实际 http 代理的情况下做到这一点,因为如果我也可以支持非网络流量,那就太好了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-26
  • 1970-01-01
  • 2021-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多