java - 如何在Java中更改源IP(tcp)

标签 java tcp

是否可以在 Java 中更改 TCP header ? 如果可以的话,有没有【更改标题】的方法?

最佳答案

从问题标题(“如何更改 Java 中的源 ip”)中回答更狭窄的问题,您可以在连接之前将套接字绑定(bind)到本地 IP 地址和/或端口到达目的地。

您绑定(bind)的IP地址必须是您的机器拥有的IP地址(否则,数据包如何返回您的机器?)。您还可以使用任何未使用的非保留端口号来连接。

Socket socket = new Socket();
socket.bind(new InetSocketAddress(9999));
// or: socket.bind(new InetSocketAddress(InetAddress.getByAddress(...), 9999));
socket.connect(new InetSocketAddress(InetAddress.getLocalHost(), 80));

更一般地说,答案是,您不能随机更改 TCP header 。但是您可以从 Java 进行大量设置,这些设置将影响 TCP header 中的内容。

关于java - 如何在Java中更改源IP(tcp),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27073384/

相关文章:

python - 如何使用 Python 脚本检查特定端口是否正在监听?

c - 在 TCP/IP 套接字中从客户端向服务器发送结构

java - 带字符的正则表达式

java - IE 在 GWT 中错误地显示一些小部件

c# - 如何正确关闭在线程中打开的 TcpClient

tcp - TCP报头是否会出现在IP碎片包中

java - 如何通过jdbc向hive表插入数据?

java - 尝试使用字段数组作为参数时出现 NullPointerException

java - 程序未从预期目录运行?

java - 测量 HTTP、HTTPS、SOCKS 代理的运行状况