gpt4 book ai didi

java - 在JVM上启用代理时是否可以获取原始主机和端口?

转载 作者:可可西里 更新时间:2023-11-01 02:54:48 28 4
gpt4 key购买 nike

我有兴趣记录 Java 程序的 TCP 通信以便稍后重播 - 类似于 VCR 框架之类的 Betamax做。挑战是在不改变原始 Java 程序的情况下创建一个代理来记录 TCP 流量。

我最初的想法:假设我有一个任意的 Java 程序,它打开到不同服务(例如数据库)的 TCP 连接,我设置了 JVM 的 socksProxyHost 属性以连接到我运行的本地主机使用以下代码编程:

ServerSocket serverSocket = new ServerSocket(1080);
Socket socket = serverSocket.accept();

有什么方法可以读取 Java 程序试图访问的原始主机和端口设置(在应用 socksProxyHostsocksProxyPort 选项之前)?如果是这样,那么我可以使用原始主机和端口打开一个新套接字并转发/记录数据。

或者是否有另一种方法来记录/重放(黑盒)Java 程序(即假设源代码不可用)与程序使用的服务之间的 TCP 通信?

最佳答案

Is there any way I can read the original host and port setting that the Java program was trying to reach (before applying the socksProxyHost and socksProxyPort option)?

SOCKs 客户端试图到达的主机和端口是客户端->服务器消息的一部分。所有这些都在 Wikipedia page 中进行了解释.

确实,有一些现有的 Java 库支持 SOCKs 协议(protocol)。

关于java - 在JVM上启用代理时是否可以获取原始主机和端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15612817/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com