【问题标题】:How to monitor my network connection with Java?如何使用 Java 监控我的网络连接?
【发布时间】:2010-12-20 21:51:00
【问题描述】:

是否有任何示例代码可以报告我的 PC 正在与 Java 连接的 url?

当我使用浏览器连接到不同的网站并在线观看视频时,它应该会捕获网址。在 Java 中可行吗?

我不要详细的流量,只记录url。

【问题讨论】:

  • 用Java写你自己的Wireshark? ;)
  • 您可以使用代理服务器记录您访问的所有网址。我不会写一个,只用一个简单的开源的。

标签: java networking monitor


【解决方案1】:

最快的方法可能是捕获命令行tshark 程序的输出(至少对于windows 和linux)。这适用于我的 linux 机器:

sudo tshark -f 'port 80' -R 'http' -V | grep -A 1 '^Hypertext Transfer Protocol'

并产生如下输出:

Running as user "root" and group "root". This could be dangerous.
Capturing on eth0
Hypertext Transfer Protocol
    GET /questions/4494294/r-gplots-barplots-how-to-fix-bar-width-independent-of-paper-setting HTTP/1.1\r\n
--
Hypertext Transfer Protocol
    HTTP/1.1 200 OK\r\n
--
Hypertext Transfer Protocol
    GET /posts/4494294/ivc/086e HTTP/1.1\r\n
--
Hypertext Transfer Protocol
    HTTP/1.1 204 No Content\r\n
--
Hypertext Transfer Protocol
    [truncated] GET /__utm.gif?utmwv=4.8.6&utmn=20455052&utmhn=stackoverflow.com&utmcs=UTF-8&utmsr=1600x1200&utmsc=24-bit&utmul=en-us&utmje=1&utmfl=10.1%20r102&utmdt=graph%20-%20R%3A%20gplots%2C%20barplots%3A%20how%20to%20fix%20bar%20width%20i
--
Hypertext Transfer Protocol
    HTTP/1.1 200 OK\r\n
--

对于 Windows,您应该得到类似的东西。实验。如何将 tshark 的输出转换为 java 取决于您。

如果你想要一个全 java 的解决方案,http://jnetpcap.com/ 怎么样?

您将不得不编写(或使用提供)某些平台特定 JNI 代码的库。

根据我的经验,jNetPcap 使用的

libpcap/WinPcap 至少在 Windows 和 Linux 上提供了可靠的功能。我有使用 libpcap/WinPcap 的经验,但没有使用 jNetPcap

tshark 实际上也使用 libpcap/WinPcap

无论哪种方式,您都会看到很多误报。打开一个 HTML 页面需要获取很多很多图片、样式表、javascript 库等。上面的 sn-p 来自打开一个 stackoverflow.com 页面。

【讨论】:

    【解决方案2】:

    做这类事情最常用的库是 libpcap。您可以在tcpdump.org 找到更多关于它的信息。幸运的是,libpcap 有一个java wrapper,所以你可以在 Java 中做这种事情。查看他们的examplestutorial 了解更多信息。

    【讨论】:

      【解决方案3】:

      如果您只想在 GUI 中查看 Java 应用程序为调试目的而创建的流量,那么 Wireshark 就是您的朋友。 tshark 只是 wireshark 的命令行版本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多