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


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
반응형
사용자 삽입 이미지
그동안 써왔던 컴팩 프리자리오 노트북을 처분하고
열망하던 소니 바이오 노트북 sz44를 구입
그동안 사양때문에 비스타를 쓸 생각도 못했지만
이젠 비스타 기본으로 탑재되어 있고
듀얼코어에... 사양도 좋고~ ㅎㅎ
대만족인 노트북... 기분이 좋습니다~
앞으로 이 노트북으로 몇년을 사용해야 겠지만... 가격도 가격만큼.. (할부로 사버려서는 ㅋㅋ)
앞으로 잘 사용하겠습니다~ ㅎㅎ
반응형

'My Story' 카테고리의 다른 글

[My Story] 나홀로 여행~  (0) 2009.09.01
[My Story] Microsoft 무선 Bluetooth Notebook Mouse 5000  (0) 2009.06.27
정체성... 앞으로 내가 할 일??  (0) 2008.12.29
2407WFP-HC  (0) 2007.10.01
블로깅 시작!!  (0) 2007.07.05

+ Recent posts