【发布时间】:2010-09-11 18:35:30
【问题描述】:
如果我要创建一个 ipfw 转移规则将所有 FTP 流量转发到特定套接字,是否可以使用 Java 连接到 socekt 并读取数据包信息?如果是这样,我将如何读取/写入scoket?
【问题讨论】:
如果我要创建一个 ipfw 转移规则将所有 FTP 流量转发到特定套接字,是否可以使用 Java 连接到 socekt 并读取数据包信息?如果是这样,我将如何读取/写入scoket?
【问题讨论】:
不确定你的意思。如果您使用的是转移规则,那么您所要做的就是在您的 java 应用程序中侦听该 ip:port 组合,然后一切就绪。如果要读取实际的目标端点信息,则需要使用 JNI。
是的,它就像一个普通的套接字,您可以对其进行读/写,但是在 Mac OS X 上,如果您确实想修改数据包并将其插入回去,您需要先重新计算 tcp 校验和。
http://blog.loudhush.ro/2006/08/using-divert-sockets-on-mac-os-x.html
这是一篇很好的文章,介绍了 Mac OS X 上转移套接字的基本用法。您实际上可以在 C 代码中创建规则。
对于您的情况,只需扫描数据包的 TCP 或 IP 标头并解析您想要的任何内容
【讨论】: