यह मेरी पहली बार पोस्टिंग है, इसलिए मुझे सच में यकीन नहीं है कि क्या कहना है/पूछना है। वैसे भी, मैं एक साधारण जावा प्रोग्राम बनाने की कोशिश कर रहा हूं जो जावा प्रोग्राम से कमांड प्रॉम्प्ट कमांड चलाता है, मुख्य रूप से पिंग बाढ़ के लिए उपयोग किया जाता है (पिंग बाढ़ स्वयं)।कमांड प्रॉम्प्ट कमांड चलाने के लिए जावा प्रोग्राम का उपयोग कैसे करें?
यहाँ मेरे वर्तमान कोड
public class Core extends JFrame {
JTextField ipTextField;
int packets = 0;
boolean running = false;
public Core() {
super("Fatique");
Container container = getContentPane();
JButton bAttack = new JButton("Start Attack");
JButton bStop = new JButton("Stop Attack");
JPanel jPanel = new JPanel();
container.setLayout(new FlowLayout());
ipTextField = new JTextField("IP Address", 30);
container.add(ipTextField);
bAttack.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String input = ipTextField.getText();
String[] value = input.split(":");
int amountOfPackets = Integer.parseInt(value[1]);
exec("cmd /c" + input + " -t -n " + amountOfPackets);
running = true;
}
});
bStop.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
stop();
}
});
if(!running) {
jPanel.add(bAttack);
} else {
jPanel.add(bStop);
}
add(jPanel);
}
public void exec(String cmd) {
try {
Process p = Runtime.getRuntime().exec(cmd);
System.out.println(getOutput(p) + " - " + getPacketsSent());
} catch (IOException e) {
e.printStackTrace();
}
}
public String getOutput(Process p) {
String output = null;
try {
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
output = line;
packets++;
}
return output;
} catch (IOException e) {
System.err.println(e.getStackTrace());
}
return null;
}
public int getPacketsSent() {
return packets;
}
public void stop() {
exec("cmd /c break");
running = false;
}
public static void main(String[] args) {
Core c = new Core();
c.setSize(500, 300);
c.setVisible(true);
c.setResizable(false);
c.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
c.setLocationRelativeTo(null);
}
मैं, जावा में काफी नया कर रहा हूँ ताकि मैं क्या यह करना चाहते हैं नहीं हो सकता है। ":" क्या मैं इसे क्या करना चाहते हैं मैं पाठ फ़ील्ड में एक आईपी पता दर्ज करें, और साथ इसे विभाजित है, और उसके बाद पैकेट की राशि उदाहरण के लिए
127.0.0.1:100
अब जब मैं उपयोग करने के लिए कि कोशिश हालांकि आईपी और पैकेट राशि, यह "शून्य - 0" (निष्पादन विधि से) लौटाती है, और मुझे यह भी यकीन नहीं है कि यह पिंग से संबंधित कुछ भी करता है।
जो मैं पूरा करने की कोशिश कर रहा हूं वह है जैसा कि मैंने पहले ही कहा है, खुद को बाढ़ पिंग कर रहा है, और उसके बाद जो कुछ भी मुझे प्रतिक्रिया के रूप में मिलता है, हालांकि मुझे नहीं पता कि यह कोड उससे संबंधित कुछ भी करता है, तो मैं ज्यादातर कोडिंग करते समय तर्क का उपयोग करता हूं जावा।
public String getOutput(Process p) {
String output = null;
try {
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
output = line;
packets++;
}
return output;
} catch (IOException e) {
System.err.println(e.getStackTrace());
}
return null;
}
क्या कोई मुझे समझा सकता है कि मेरा कोड कोड क्यों काम नहीं कर रहा है कि मैं इसे कैसे काम करना चाहता हूं? कृपया न्याय न करें, जैसा कि मैंने पहले ही कहा है, मैं जावा प्रोग्रामिंग के लिए काफी नया हूं।
संपादित करें: यहां जो कुछ मैं पूरा करने की कोशिश कर रहा हूं उसका त्वरित "जानकारीपूर्ण" स्पष्टीकरण यहां दिया गया है।
- मैं एक आईपी पता टाइप करता हूं और कितने पैकेट भेजना चाहता हूं। इस स्पष्टीकरण में, मैं लोकलहोस्ट आईपी और 5 पैकेट का उपयोग कर रहा हूं।
मैं हमला शुरू करता हूं। इस भाग में, मैं कार्यक्रम cmd शीघ्र आदेश
पिंग 127.0.0.1 आयकर -n 5
127.0.0.1 आईपी है कि मैं अपने कार्यक्रम में पाठ फ़ील्ड में डाल जा रहा है चलाना चाहते हैं, और 5 है मैंने टेक्स्टफील्ड में रखे पैकेट की मात्रा।
मैं हमले शुरू कर दिया है, तो यह क्या कमांड प्रॉम्प्ट में होने चाहिए:
भाषा फिनिश है, लेकिन अभी भी एक ही बात।
यह जो मैं पूरा करने की कोशिश कर रहा हूं, उसका मूल स्पष्टीकरण है, उम्मीद है कि कोई समझता है और बता सकता है कि मेरा कोड क्यों काम नहीं कर रहा है, या काम कर रहा है लेकिन ग्रहण कंसोल में उचित लाइनों को प्रिंट नहीं कर रहा है।
प्रक्रिया 'इनपुट स्ट्रीम के कच्चे आउटपुट को प्रिंट करने का प्रयास करें। – Zyerah
अभी भी शून्य, हालांकि मैंने शायद ऐसा नहीं किया जो आपने मुझे करने के लिए कहा था। Println (in.readLine()); मैंने यही कोशिश की, अब यह "शून्य शून्य - 1" – Woobie