在不更改 IP 的情况下放弃 UDP 数据包



我正在努力从 1 台计算机发送 1 个 UDP 数据包并将其转发到多台主机。我使用以下代码接收,但是我可以使用DatagramPacket发送数据包,因为它会修改源 ip。

有没有办法或工具允许我这样做?我正在使用窗口环境。谢谢。

public class app{
    public static void main(String[] args) throws UnknownHostException, SocketException, IOException  {
        // TODO code application logic here
        byte[] buffer = {10,23,12,31,43,32,24};
        byte [] IP={-64,-88,1,106};
        InetAddress address = InetAddress.getByAddress(IP);
        DatagramPacket packet = new DatagramPacket(
                buffer, buffer.length, address, 57
                );
        DatagramSocket datagramSocket = new DatagramSocket();
        datagramSocket.send(packet);
        System.out.println(InetAddress.getLocalHost().getHostAddress());
    }
}

不确定是否可以在 java 中做到这一点,但如果你以某种方式做到了 (jni( - 你将面临更困难的问题:你试图做的是 IP 欺骗,任何响应的互联网提供商或托管商都会阻止带有伪造 IP 地址的数据包。

请考虑使用多播,或者不要尝试伪造您发送的数据包的源 IP。

最新更新