RSS

Pemrograman java

24 Jul

A. Menangani Nama dan IP Komputer dengan Java

Sistem terdistribusi terdiri atas kumpulan komputer yang berdiri sendiri (otonom)
dan saling bekerja sama, dan mungkin juga berbagi pakai sumber daya komputasi
(prosesor, memori, storage) untuk menyediakan layanan bagi pengguna. Untuk dapat
berkomunikasi dengan komputer lain, masing-masing komputer diberi identitas pada level
aplikasi berupa alamat IP (Internet Protocol) seperti 192.168.29.251.
Namun mengenali alamat komputer berdasarkan penomeran IP diatas bukanlah hal
yang mudah dilakukan dengan ingatan manusia (programmer!). Oleh sebab itu pada
infrastruktur jaringan terdapat layanan Naming, seperti DNS (Domain Naming Service)
pada internet atau intranet yang menyimpan semacam kamus translasi nama user friendly
komputer dan alamat IP nya. Tugas layanan naming semacam ini menerjemahkan alamat
komputer yang user-friendly, seperti http://www.google.com menjadi alamat IP seperti
66.102.7.104.
Pada komputer lokal juga terdapat layanan semacam ini yang disebut dengan
resolver, yang menyimpan kamus translasi dalam suatu file khusus (di Windows XP file
tersebut biasanya terletak di C:\Windows\system32\drivers\etc\hosts ). Contoh isi file hosts
dapat dilihat pada gambar 1. Jadi jika komputer lokal diminta menghubungi suatu nama
komputer, maka komputer lokal akan berusaha menerjemahkan nama komputer tersebut
ke alamat IP sesungguhnya dengan menggunakan resolver, jika entry nama komputer tidak
terdapat pada file hosts maka komputer lokal kemudian akan mencoba menghubungi
layanan DNS (berdasarkan setting DNS Server pada komputer).

Java menyediakan obyek InetAddress yang memanfaatkan layanan sistem operasi
dan jaringan diatas untuk melakukan translasi nama dan IP komputer. Demo dibawah ini
memperlihatkan bagaimana menggunakan obyek InetAddress untuk mengambil IP
komputer lokal (D1-1) dan nama komputer lokal (D1-2), melakukan translasi IP ke nama
komputer (D1-3), serta translasi nama ke IP komputer (D1-4) (seperti perintah shell
NSLookup).

Demo D1-1
1. Buat program di bawah ini, simpan dengan nama getIP.java

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 0) {
System.out.print(".");
}
System.out.print(ip[i] & 0xff);
}
System.out.println();
}
}

2. Kompilasi program diatas, jalankan dan amati hasilnya
$ javac getIP.java
$ java getIP

Demo D1-2

1. Buat program di bawah ini, simpan dengan nama getName.java

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());
}
}


2. Kompilasi dan jalankan program diatas (lihat D1-1) dan amati hasilnya
$ javac getName.java
$ java getName

Demo D1-3

1. Buat program di bawah dengan nama IPtoName.java

import java.net.*;
public class IPtoName {
public static void main(String args[]) {
if (args.length == 0) {
System.out.println("Pemakaian: java IPtoName ");
System.exit(0);
}
String host = args[0];
InetAddress address = null;
try {
address = InetAddress.getByName(host);
} catch (UnknownHostException e) {
System.out.println("invalid IP - malformed IP");
System.exit(0);
}
System.out.println(address.getHostName());
}
}


2. Kompilasi dan jalankan dengan argumen IP komputer lokal dan komputer lain
$ javac IptoName.java
$ java IPtoName
$ java IPtoName
$ java IptoName

Demo D1-4
1. Buat program ini, simpan dengan nama NsLookup.java:

import java.net.*;
public class NsLookup {
public static void main(String args[]) {
if (args.length == 0) {
System.out.println("Pemakaian: java NsLookup ");
System.exit(0);
}
String host = args[0];
InetAddress address = null;
try {
address = InetAddress.getByName(host);
} catch(UnknownHostException e) {
System.out.println("Unknown host");
System.exit(0);
}
byte[] ip = address.getAddress();
for (int i=0; i 0) System.out.print(".");
System.out.print((ip[i]) & 0xff);
}
System.out.println();
}
}


2. Kompilasi dan jalankan dengan cara (coba dengan hostname yang berbeda-beda)
$ javac NsLookup.java
$ java NsLookup

 
Leave a comment

Posted by on July 24, 2010 in PEMROGRAMAN

 

Leave a comment