package com.jds.jn_module.gui; import java.awt.Dimension; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import com.intellij.uiDesigner.core.GridConstraints; import com.intellij.uiDesigner.core.GridLayoutManager; import com.intellij.uiDesigner.core.Spacer; import com.jds.jn_module.JnModule; import com.jds.jn_module.logs.writer.Writer; import com.jds.jn_module.network.jpcap.DeviceInfo; import com.jds.jn_module.network.jpcap.Listener; import com.jds.jn_module.network.session.Session; import com.jds.jn_module.network.session.SessionTable; import jpcap.JpcapCaptor; import jpcap.NetworkInterface; /** * Author: VISTALL * Company: J Develop Station * Date: 2:35:17/04.04.2010 */ public class MainForm extends JFrame implements Runnable { private JComboBox _networkList; private JButton _startButton; private JLabel _packetCount; private JPanel root; private JButton _save; private JLabel _sessionId; private JCheckBox _promicseMode; private JTextField _portField; private JpcapCaptor _pcap; public MainForm() { setContentPane(root); setDefaultCloseOperation(EXIT_ON_CLOSE); setSize(550, 100); setTitle("Jn Module"); setResizable(false); NetworkInterface[] alldevs = JpcapCaptor.getDeviceList(); for(NetworkInterface f : alldevs) { _networkList.addItem(new DeviceInfo(f)); } _startButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { new Thread() { @Override public void run() { try { JnModule.PORT = Integer.parseInt(_portField.getText()); System.out.println("Starting sniffing"); _pcap = JpcapCaptor.openDevice(((DeviceInfo) _networkList.getSelectedItem()).getDevice(), 65535, _promicseMode.isSelected(), 10); _pcap.setFilter("tcp port " + JnModule.PORT, true); _startButton.setEnabled(false); _startButton.setText("Starting"); _pcap.loopPacket(-1, new Listener()); } catch(IOException e1) { e1.printStackTrace(); } } }.start(); } }); _save.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { run(); for(Session session : SessionTable.getInstance()) { try { System.out.println("saved " + session.getSessionId()); Writer wr = new Writer(session); wr.write(); } catch(IOException e1) { e1.printStackTrace(); } } System.exit(0); } }); } public void setPacketCount(int size) { _packetCount.setText(String.valueOf(size)); } public void setSessionId(long d) { _sessionId.setText(String.valueOf(d)); } @Override public void run() { System.out.println("Starting exit"); if(_pcap != null) { _pcap.breakLoop(); } } { // GUI initializer generated by IntelliJ IDEA GUI Designer // >>> IMPORTANT!! <<< // DO NOT EDIT OR ADD ANY CODE HERE! $$$setupUI$$$(); } /** * Method generated by IntelliJ IDEA GUI Designer * >>> IMPORTANT!! <<< * DO NOT edit this method OR call it in your code! * * @noinspection ALL */ private void $$$setupUI$$$() { root = new JPanel(); root.setLayout(new GridLayoutManager(2, 2, new Insets(3, 3, 3, 3), -1, -1)); final JPanel panel1 = new JPanel(); panel1.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1)); root.add(panel1, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false)); _portField = new JTextField(); _portField.setText("7777"); panel1.add(_portField, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false)); final JLabel label1 = new JLabel(); label1.setText("Port:"); panel1.add(label1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); final JPanel panel2 = new JPanel(); panel2.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1)); root.add(panel2, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, new Dimension(428, 28), null, 0, false)); _networkList = new JComboBox(); panel2.add(_networkList, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); final JPanel panel3 = new JPanel(); panel3.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1)); root.add(panel3, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false)); _save = new JButton(); _save.setText("Save"); panel3.add(_save, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); _startButton = new JButton(); _startButton.setText("Start"); panel3.add(_startButton, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); final JPanel panel4 = new JPanel(); panel4.setLayout(new GridLayoutManager(1, 6, new Insets(0, 0, 0, 0), -1, -1)); root.add(panel4, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, new Dimension(428, 24), null, 0, false)); final JLabel label2 = new JLabel(); label2.setText("Current Packets:"); panel4.add(label2, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); _packetCount = new JLabel(); _packetCount.setText("0"); panel4.add(_packetCount, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); final JLabel label3 = new JLabel(); label3.setText("Session:"); panel4.add(label3, new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); _sessionId = new JLabel(); _sessionId.setText("0"); panel4.add(_sessionId, new GridConstraints(0, 3, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); _promicseMode = new JCheckBox(); _promicseMode.setText("Promicse Mode"); panel4.add(_promicseMode, new GridConstraints(0, 4, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); final Spacer spacer1 = new Spacer(); panel4.add(spacer1, new GridConstraints(0, 5, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 0, false)); } /** * @noinspection ALL */ public JComponent $$$getRootComponent$$$() { return root; } }