drcarter의 DevLog

tip +31

Port Scanner

tip2007. 7. 5. 01:35
자바로 만들어본 간단한 포트 스캐너...
그냥 요즘 그동안 공부한거 복습하고
포트폴리오 만들고 하다가
자바를 또 건드려보는... 그러다가 심심해서 만들어 본 포트 스캐너...
아이피 입력해서 그 아이피에 사용하는 포트와 사용하지 않는 포트를 출력...


import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
public class PortScanner implements Runnable, ActionListener{
 //기본
 private JFrame fr = new JFrame("Port Scanner");
    private JButton scanBN = new JButton("스캔");
    private JTextField inputIP = new JTextField("", 18);
    private JLabel ipLB = new JLabel("IP Address : ");
    private DefaultListModel listModel = new DefaultListModel();
    private JList listResult = new JList(listModel);
    private JScrollPane js = new JScrollPane(listResult);
   
    //패널
    private JPanel inputPanel = new JPanel();
   
    //레이아웃
    BorderLayout bLayout = new BorderLayout();
    private int index;
    private String ip;
    public PortScanner(){         
     listResult.setVisibleRowCount(10);
     
     inputPanel.add(ipLB);
     inputPanel.add(inputIP);
     inputPanel.add(scanBN);
     scanBN.addActionListener(this);
     
     fr.getContentPane().add(bLayout.CENTER, js);
     fr.getContentPane().add(bLayout.SOUTH, inputPanel);
     
     fr.setBounds(100, 100, 400, 300);
     fr.setVisible(true);
       
    }
    public void actionPerformed(ActionEvent ae){
        Object obj = ae.getSource();
        if(obj == scanBN){
            ip = inputIP.getText();
            if(ip == null || ip.trim().length()==0){
             inputIP.requestFocusInWindow();
             inputIP.setText("");               
                return;
            }else{
                listModel.insertElementAt(ip,index);
                listResult.setSelectedIndex(index);             
                listResult.ensureIndexIsVisible(index);
                index++;
                Thread t = new Thread(this);
                t.start();               
            }
        }
    }
    public void run(){
        Socket s = null;
        for(int i=1;i<65536;i++){
            try{
                s = new Socket(ip,i);
                listModel.insertElementAt(i+
                        "번 포트가 사용중입니다",index);
                listResult.setSelectedIndex(index);
                listResult.ensureIndexIsVisible(index);
            }catch(IOException e){
             listModel.insertElementAt(i+
                        "번 포트를 사용하지 않습니다.",index);
                listResult.setSelectedIndex(index);
                listResult.ensureIndexIsVisible(index);
            }
        }
    }
    public static void main(String[] args){
        new PortScanner();
    }
}

'tip' 카테고리의 다른 글

linux locale 설정 변경  (0) 2009.01.07
linux man page...  (0) 2009.01.04
Mysql 에러별 대처 방법  (0) 2008.12.29
부팅시 USB키보드가 안먹힐때  (0) 2007.07.27
모니터 사이즈 비교  (0) 2007.07.18