gpt4 book ai didi

java - 如何在java中反射(reflect)端口53上的UDP数据包?

转载 作者:行者123 更新时间:2023-11-30 07:59:21 28 4
gpt4 key购买 nike

我用 Java 编写了这个程序,并在 Ubuntu 14 下运行它。

运行时,它通过端口 53 将 UDP 数据包发送到在 Debian 8.0 下运行的缓存 DNS 服务器。

服务器向源发送回复。如何修改程序,使服务器回复另一个IP地址而不是在同一局域网内?

这是程序:

import java.io.*;

import java.net.*;


public class ClientSender {
private static Object InetAdress;


public static void main(String[] args) {

int i ;

for (i=0;i<1000;i++){

DatagramSocket skt;

try{
/////////////////////////////////////////
skt = new DatagramSocket(); /////creating socket
String msg = "Test";//////////message

byte[] b =msg.getBytes(); /// creating message

InetAddress host =InetAddress.getByName("192.168.1.3"); ///destination IP address

int serverSocket = 53; // Destination Port

///////////////////////////////////////////////////////////////

DatagramPacket request =new DatagramPacket(b,b.length,host,serverSocket);
skt.send(request); /////////////////////////creating packet

///////////////////////////////////////////////////////////////////////////////

//..................................// for receiving replies from destnation
byte [] buffer = new byte[1000];
DatagramPacket reply = new DatagramPacket (buffer, buffer.length);
skt.receive(reply); ///////////////////////////////////lestining to replies from destination

skt.close();///////////////closing socket

System.out.println(new String(request.getData()));
System.out.println(new String(reply.getData()));



}
catch (Exception ex)
{

}
}}

}

最佳答案

在 Java 中你无法做到这一点。

您当前的客户端 IP 地址将禁止服务器在您的 LAN 连接中选择不同客户端的 IP 地址。

这在 Java 中是不可能的。

关于java - 如何在java中反射(reflect)端口53上的UDP数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32180055/

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