1
我用Java編寫了這個程序,我在Ubuntu 14下運行它。如何在java中的端口53上反映UDP數據包?
運行它時,它通過端口53將UDP數據包發送到在Debian 8.0下運行的緩存DNS服務器。
服務器將回復發送給源。如何修改程序以使服務器回覆到另一個IP地址,而不是在同一個LAN中?
下面是程序:
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)
{
}
}}
}
你不能;用於套接字的IP /端口對連接到此套接字。而你爲什麼要這麼做呢? – fge
感謝您的每一件事......我正在開展一項保護DNS服務器免受DNS反射攻擊的項目,但我無法執行反射部分。我在一些迷你項目中使用了java,但是我是java socket編程的新手,我希望我可以這麼做,還有其他方法可以在小範圍內進行反射嗎? –