LAPORAN PEMBUATAN WEB JARINGAN BERBASIS PHP

Networking Program Executer v.2.0

Mata Kuliah : Jaringan komputer Lanjut

ABDUL KHARIRI BUDI PRIBOWO FEBRIANSYAH RAZAK

(48910002) (48910005) (48910006)

INSTITUT TEKNOLOGI BANDUNG TAHUN 2011

Latar Belakang Pengguna komputer lebih cenderung untuk menggunakan program yang berbasis GUI

(graphical user interface) dan berbasis web karena menarik. Oleh karena itu kita membuat web php untuk mengakses aplikasi command prompt yang ada di komputer dengan nama Networking program eksekutor karena dikhususkan untuk layanan jaringan .

Rumusan Masalah

Bagaimana membuat web php untuk mengetahui berapa jumlah host yang aktif di dalam suatu jaringan ?

Landasan Teori Program ini menggunakan dasar perintah command prompt ‘netstat’.  Netstat Netstat kependekan dari network statistik, netstat merupakan salah satu fasilitas windows yang berguna untuk memeriksa status jaringan serta memberikan informasi tentang adanya transfer data yang terjadi dalam sebuah jaringan yang terhubung ke komputer, baik itu jaringan lokal (LAN) maupun jaringan Internet, baik itu transfer data masuk (incoming) atau juga outgoing secara real time.

Cara mengoperasikan netstat adalah dengan masuk ke CMD dengan urutan klik tombol start > run > ketikkan cmd > klik OK (pada windows xp) atau klik tombol start > ketikkan cmd pada form search > enter (pada windows vista dan 7) kemudian ketikkan netstat , setelah itu akan tampil informasi-informasi mengenai protocol, Local address, foreign address, dan state. Adapun definisi dari beberapa elemen netstat adalah sebagai berikut: 1. Foreign address: menampilkan informasi mengenai alamat koneksi yang dituju oleh local address, format foreign address adalah xxxx:yyyy yang xxxx adalah alamat dari koneksi yang dituju (biasanya website/local host) sementara yang yyyy adalah port yang dituju

NPEv2 | 1

2. Local address: sama seperti foreign address, hanya saja local address ini untuk komputer local kita yang aktif melakukan koneksi dengan jaringan luar (foreign address), format local address ini adalah zzzz:tttt dengan zzzz adalah alamat host dalam komputer, dan tttt adalah port 3. Proto: menampilkan jenis protocol yang digunakan (TCP atau UDP) 4. State: status dari tiap koneksi yang terhubung, kolom state ini memiliki 5 kemungkinan yaitu:

-ESTABLISHED: koneksi berhasil -LISTENING: koneksi siap 100 persen (namun koneksi belum berlangsung) -SYN_RECEIVED: menerima SYN -SYN_SENT: mengirim SYN -TIME_WAIT: menunggu koneksi untuk terhubung Beberapa operasi netsat : 1. -a: Berfungsi untuk memberikan informasi mengenai seluruh koneksi TCP yang aktif serta Port dari TCP dan UDP di dalam komputer yang dalam state (status) listening 2. -b: Memberikan informasi mengenai nama dari binary program yang memiliki keterlibatan dalam membentuk setiap koneksi(sudah terhubung) atau juga listening port 3. -e: memberikan informasi terkait ethernet 4. -n: memberikan informasi tentang address (alamat) serta no port dengan format numeric 5. -o: menampilkan ID (PID) dari tiap owner yang bergabung dalam koneksi 6. -p proto: menunjukkan koneksi yang diartikan oleh proto 7. -r: menampilkan route table (table routing) 8. -s: memberikan informasi statistik dari tiap protocol 9. -t interval: menampilkan kembali statistik yang telah dipilih(selected statistics)

NPEv2 | 2

PEMBAHASAN PROGRAM Networking Program Executer v.2.0 (NPEv2)

Tampilan Awal Program

1

2

3

Keterangan : 1. Menjalankan perintah command ‘ping’, ‘nslookup’, ‘tracert’. Dijalankan dengan menggunakan fungsi exec bawaan php. 2. Mengetahui jumlah host yang sedang berkomunikasi dengan computer. Dengan dasar perintah ‘netstat’ dari command kemudian dimodifikasi dengan beberapa fungsi sehingga dapat menghasilkan suatu proses untuk mendapatkan output jumlah host yang sedang berkomunikasi. 3. Mengetahui ip dan jumlahnya yang terhubung dengan computer pada suatu jaringan. Dengan dasar perintah ‘ipconfig’ dan broadcast ‘ping’ program ini dapat melihat ip yang terhubung dengan computer.

NPEv2 | 3

Fasilitas scan ip yang aktif :

Aliran pemrosesan :

x.x.x.x

192.168.1.7 Local connection Inter connection

192.168.1.4

input

output

Command Prompt Local DB Local webServer

NPEv2 | 4

Cara kerja program : Program ini berdasar pada command netstat di windows.

Pertama php dengan fungsi exec-nya akan mengeksekusi perintah netstat melalui website yang telah dibuat, kemudian hasil dari perintah netstat tersebut ditampung ke dalam sebuah variable array ($output), sehingga jika dicetak pada saat itu akan menghasilkan output kurang lebih seperti berikut :
Array ( 0 => ‘’ 1 => ‘Proto 2 => ‘TCP 3 => ‘TCP 4 =>’TCP 5 =>’TCP . . Local Address 127.0.0.1:49167 127.0.0.1:49168 127.0.0.1:49169 127.0.0.1:49170 Foreign Address State’

FeRaz-Note:49168 ESTABLISHED’ FeRaz-Note:49167 ESTABLISHED’ FeRaz-Note:49170 ESTABLISHED’ FeRaz-Note: 49169 ESTABLISHED’

NPEv2 | 5

. )

[dst… apabila computer terhubung dengan jaringan lainnya maka akan muncul ip lain]

Hasil output tersebut masih berbentuk array dan ternyata menghasilkan urutan ip beserta port yang saling terhubung, karena program ini diperuntukkan untuk menghasilkan jumlah host yang terhubung maka yang perlu dilihat adalah ip nya saja, oleh karena itu port yang disertakan perlu diproses terlebih dahulu agar bisa dipisahkan dengan ip. Metode pemisahan ini dilakukan dengan cara mengconvert dari array menjadi string dengan script :
$cek = implode(":", $output);

Sehingga menghasilkan suatu string yang dipisahkan semua dengan tanda ‘:’, kemudian string tersebut kita dilempar kembali kedalam bentuk array dengan script :
$dua =(explode(":", $cek));

Array ini sudah bisa dipisahkan apabila diproses lebih lanjut karena setiap akhir dari kalimat yang bertanda ‘:’ termasuk port ‘:’ menjadi spasi, itu berarti ip dapat dipisahkan dari portnya. Kemudian untuk mengeluarkan index array secara urut perlu kita hitung berapa banyak index array yang dibutuhkan.
$n = count($dua); for($i=0; $i<=$n; $i++) { $cekunik = ($dua[$i]); $str = $cekunik; $arrex =(explode(" ", $cekunik));

Dalam kode tersebut terlihat setelah index array dihitung berapa jumlahnya, maka akan dicetak sebanyak jumlah tersebut, kemudian hasil index array tersebut kembali diconvert menjadi string agar dapat dimasukkan ke database. Dalam hal ini diperlukan database karena output banyak yang berupa double ip atau input kosong, sehingga untuk lebih mudahnya output tersebut disimpan dalam sebuah table di database.
$simpan = mysql_query("insert into aktif_ip(id,ip,ket) values ('','$arrex[6]','')"); $list = mysql_query("SELECT DISTINCT ip FROM aktif_ip where ip != ' ' AND ip != 'ESTABLISHED' AND ip != 'TIME_WAIT' AND ip != 'FIN_WAIT_1'");

NPEv2 | 6

$hitung = mysql_query("select count(distinct ip) from aktif_ip where ip != ' ' AND ip != 'ESTABLISHED' AND ip != 'TIME_WAIT' AND ip != 'FIN_WAIT_1'");

Terlihat bahwa proses pertama adalah penyimpanan output ke database ($simpan) kemudian pemilihan output berupa ip yang telah difilterisasi ($list) dan terakhir adalah menghitung jumlah ip yang telah difilter ($hitung). Hasil pemrosesan tersebut kita cetak di dalam web dengan script :
echo "<b>No. | IP AKTIF</b>"; echo "<br><br>"; $count=1; while ($row = mysql_fetch_assoc($list)) { echo $count++."&nbsp;"."&nbsp;"."&nbsp;"."&nbsp;"." | "; echo $row['ip']; echo "<br>"; } echo "<br>"; $tot=mysql_fetch_row($hitung); $tot=$tot[0]; echo "<hr>"; echo "Jumlah Host Aktif : ".$tot. " Host"; echo "<hr>";

sehingga menghasilkan output seperti tampilan web diatas, kemudian yang perlu diperhatikan karena web ini menggunakan tempat penampungan sementara untuk database, maka setiap kali perintah selesai di eksekusi dan menghasilkan suatu output perlu ditekan tombol reset untuk menghapus temporary database agar eksekusi berikutnya dapat berjalan sesuai dengan command yang dieksekusi. Tombol reset tersebut telah disiapkan dibawah cetakan output :
echo "<font size='-2'><BLINK>selalu tekan reset setelah selesai agar scanning dapat dibersihkan</BLINK></font>"; echo "<form action='reset.php'><input type='submit' value='RESET' name='btnhapus'></form>";

NPEv2 | 7

Detail Bugs : 1. Apabila terjadi crowded atau jaringan sibuk sehingga command netstat memerlukan waktu yang lama untuk mengeksekusinya maka akan muncul tampilan pesan kesalahan bahwa perintah memakan waktu lebih dari 60 sekon sebagai output.

2. Program ini hanya merupakan modifikasi penyederhanaan output dari perintah ‘netstat’, jadi apabila output dari netstat tersebut berbentuk selain ip, contoh : [nama computer] atau [00:00:eF:90….] maka hal tersebut juga dianggap sebagai ip, sehingga output yang dihasilkan juga memunculkan selain ip.

NPEv2 | 8