Tuesday, February 2, 2010

Matiin firewall dengan java menggunakan library Jsch

Sebuah aplikasi sederhana yang masih jauh dari perfect,yang berfungi matiin firewall di tempat gaweaan ku.

untuk itu kita mempersiapkan apa yang di perlukan dalam merakit aplikasi sederhana ini.
-Laptop.
-Firewall.
-internet tentunya.
-Rokok dibuang diganti ma cemilan.
-kopi diganti ma susu beruang.^_^
-Musik diganti dengan Nasyid Ghirah biar gak letoy..
Berikut contoh codingannya :

package com.andia.server.poweroff;

import java.io.ByteArrayInputStream;

import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CLabel;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;

public class Executed {

    public static void main(String[] args) throws JSchException {

        JSch jsch = new JSch();

        String user = "root";
        String pass = "andika";
        String host = "192.168.0.101";

        final Session session = jsch.getSession(user, host, 222);
        session.setPassword(pass);
        java.util.Properties config = new java.util.Properties();
        config.put("StrictHostKeyChecking", "no");
        session.setConfig(config);
        session.connect();
        System.out.println("connect ke server");
        /*
         * perintah eksekusi matiin server
         */
        final String command = "init 0";

        ChannelExec channel = (ChannelExec) session.openChannel("exec");
        channel.setCommand(command);
        channel.setInputStream(System.in);
        ((ChannelExec) channel).setErrStream(System.err);

        Display display = new Display();
        Shell shell = new Shell(display);
        shell.setLayout(new FillLayout());
        shell.setText("Please Shutdown ");

        CLabel text = new CLabel(shell, SWT.CENTER);
        text.setText("IP Address : 192.168.0.101");

        /*
         * button
         */
        final Button button = new Button(shell, SWT.PUSH);
        button.setText("Shutdown");
        button.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                Channel channel = null;
                try {
                    channel = session.openChannel("shell");
                } catch (JSchException e1) {

                    e1.printStackTrace();
                }

                channel.setInputStream(System.in);

                ByteArrayInputStream bi = new ByteArrayInputStream("init 0\r"
                        .getBytes());
                channel.setInputStream(bi);

                try {
                    channel.connect(30000);
                } catch (JSchException e1) {

                    e1.printStackTrace();
                }

            }
        });

        shell.setLayout(new GridLayout(1, false));
        shell.setSize(230, 100);
        shell.open();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
        display.dispose();

    }

}
dan seperti ini Tampilannya

 
sederhana kan GUI nya...tapi tinggal klik mati deh Firewallnya.

2 comments:

Anonymous said...

Terima kasih atas tutorialnya Pak

Ada yang mau Saya tanyakan, boleh?

1. Script tersebut bisa dijalankan di Eclipse, untuk membuat aplikasi Android?

2. Diperlukan berapa class agar program berhasil

Maaf jika pertanyaannya kurang berbobot, soalnya masih belajar Pak

Terima kasih

dendy said...

lahhh...saya juga baru belajar.terbukti oo nya masi struktural cara codingnya..

1. Script tersebut bisa dijalankan di Eclipse, untuk membuat aplikasi Android?
kalo codenya emang menggunakan eclipse,pake plugin SWT.kalo mo bikin aplikasi di android dengan fungsi yang sama saya kira bisa dan dah banyak.waktu ntu dah pernah liat(apa dengar ya?,saya lupa)

2. Diperlukan berapa class agar program berhasil
untuk beberapa classnya saya pikir tergantung yang bikin aplikasinya,semakin banyak jam terbangnya semakin bagus pola codingannya..OO-nya maksudnya..

maaf jika jawabannya kurang memuaskan..
makasi ya,mampir diblog aye :D