Pages

Rabu, 10 Juni 2015

Program java yang dapat mengetahui IP address atau nama dari sebuah PC dll

1.       IP address
Berikut adalah script untuk IP komputer yang sedang digunakan.
import java.net.*;
public class getip {
public static void main(String args[]) throws Exception {
InetAddress host = null;
host = InetAddress.getLocalHost();
byte ip[] = host.getAddress();
for (int i=0; i<ip.length; i++) {
if (i > 0) {
System.out.print(".");}
System.out.print(ip[i] & 0xff);}
System.out.println();
}}

Copy paste script di atas pada notepad, lalu simpan dengan nama getip.java. Lalu buka cmd (command prompt) lalu compile script tersebut dengan perintah javac getip.java. setelah selesai dicompile, jalankan program dengan perintah java getip. program tersebut di compile maka program tersebut sudah siap untuk dijalankan dengan mengetik java getip pada command prompt. Setelah saya running program tersebut di laptop saya, maka akan keluar output seperti gambar di bawah ini :



Saya akan menjelaskan sedikit tentang program java untuk menampilkan ip address tersebut. Pada line pertama terdapat syntax import java.net.*;, ini adalah salah satu syntax library yang digunakan untuk mengimport semua data yang berada di dalam folder net pada folder java. Library yang diimport tadi akan digunakan pada program ini untuk menampilkan ip address komputer kita. Pada line kedua terdapat sintaxpublic class getip {, pada syntax tersebut menyatakan bahwa kita membuat sebuah class dengan nama getip. Pada line ketiga terdapat syntax public static void main(String args[]) throws Exception {, syntax ini untuk mendeteksi kesalahan yang ada di program.
InetAddress host = null;
host = InetAddress.getLocalHost();
byte ip[] = host.getAddress();
for (int i=0; i<ip.length; i++) {
if (i > 0) {
System.out.print(".");}
System.out.print(ip[i] & 0xff);}
System.out.println();
syntax InetAddress host = null; digunakan untuk mendeklarasikan bahwa InetAddress bernilai kosong atau null.  host = InetAddress.getLocalHost(); syntax ini menyatakan bahwa objek host di beri nilai yaitu InetAddress.getLocalHost() . byte ip[] = host.getAddress(); pada syntax ini dijelaskan bahwa dapat dibuat sebuah variable dengan tipe data array byte yang dideklarasikan dalam ip yang mana isinya di ambil dari host.getAddress(), artinya akan terproses method getAddress pada objek host. Lalu dibuat perulangan untuk mencetak ip address computer tersebut.
2.       Nama komputer
Kodingan di bawah ini adalah codingan yang dapat digunakan untuk mengecek nama komputer yang sedang kita pakai.
import java.net.*;
public class getname {
public static void main(String args[]) throws Exception {
InetAddress host = null;
host = InetAddress.getLocalHost();
System.out.println("Nama komputer Anda: " +
host.getHostName());
}}

Berikut adalah hasil ketika kita merunning program getname tersebut.




3.       Chatting sederhana client – server dengan socket programming

simpleServer.java
import java.io.*;
import java.net.*;
public class simpleServer {
public final static int TESTPORT = 5000;
public static void main(String args[]) {
ServerSocket checkServer = null;
String line;
BufferedReader is = null;
DataOutputStream os = null;
Socket clientSocket = null;
try {
checkServer = new ServerSocket(TESTPORT);
System.out.println("Aplikasi Server hidup ...");
} catch (IOException e) {
System.out.println(e);
}
try {
clientSocket = checkServer.accept();
is = new BufferedReader(new
InputStreamReader(clientSocket.getInputStream()));
os = new DataOutputStream(clientSocket.getOutputStream());
} catch (Exception ei) {
ei.printStackTrace();
}
try {
line = is.readLine();
System.out.println("Terima : " + line);
if (line.compareTo("salam") == 0) {
os.writeBytes("salam juga");
} else {
os.writeBytes("Maaf, saya tidak mengerti");
}
} catch (IOException e) {
System.out.println(e);
}
try {
os.close();
is.close();
clientSocket.close();
} catch (IOException ic) {
ic.printStackTrace();
}
}
}
simpleClient.java
import java.io.*;
import java.net.*;
public class simpleClient {
public final static int REMOTE_PORT = 5000;
public static void main(String args[]) throws Exception {
Socket cl = null;
BufferedReader is = null;
DataOutputStream os = null;
BufferedReader stdin = new BufferedReader(new
InputStreamReader(System.in));
String userInput = null;
String output = null;
// Membuka koneksi ke server pada port REMOTE_PORT
try {
cl = new Socket(args[0], REMOTE_PORT);
is = new BufferedReader(new
InputStreamReader(cl.getInputStream()));
os = new DataOutputStream(cl.getOutputStream());
} catch(UnknownHostException e1) {
System.out.println("Unknown Host: " + e1);
} catch (IOException e2) {
System.out.println("Erorr io: " + e2);
}
// Menulis ke server
try {
System.out.print("Masukkan kata kunci: ");
userInput = stdin.readLine();
os.writeBytes(userInput + "\n");
} catch (IOException ex) {
System.out.println("Error writing to server..." + ex);
}
// Menerima tanggapan dari server
try {
output = is.readLine();
System.out.println("Dari server: " + output);
} catch (IOException e) {
e.printStackTrace();
}
// close input stream, output stream dan koneksi
try {
is.close();
os.close();
cl.close();
} catch (IOException x) {
System.out.println("Error writing...." + x);
}}}

Untuk program ini kita membutuhkan 2 komputer untuk menjalankannya. 1 komputer bertindak sebagai server dan 1 komputer lainnya bertindak sebagai client. Pada sisi server save file yang bernama simpleServer.java sedangkan pada sisi client save file yang bernama simpleClient.java. Lalu compile program simpleServer.java di sisi server dan compile simpleClient.java di sisi client. lalu runningkan program simpleServer terlebih dahulu, setelah program simpleServer running maka running program simpleClient dengan cara java simpleClient <nama komputer server>. seperti gambar di bawah ini.


Bila program telah dirunning maka program akan meminta kata kunci. Jika kata kunci sesuai maka server akan membalasnya. Namun jika tidak sesuai maka akan keluar tampilan seperti ini:


dan berikut jika kata kunci client salah.



Apabila katakunci client salah maka output di client yang terjadi perubahan namun output pada server tidak mengalami perubahan.

0 komentar:

Posting Komentar