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 terminal ‘ifconfig’ dan ‘ping’ di linux.
Ifconfig
Perintah ifconfig ini berguna untuk mengetahui ip dan netmask yang dipakai oleh suatu computer,
perintah ini berbeda apabila di jalankan di windows (ipconfig) dan di linux (ifconfig). Perbedaan
mendasar apabila perintah dijalankan di linux maka hasil output dapat difilter untuk mengeluarkan
hanya octet pertama ip jadi akan lebih memudahkan dalam pembuatan program.
Ping
Ping berguna untuk melakukan pengetesan koneksi kearah IP tujuan dengan mengirimkan paket-paket
data. Ping ini menggunakan protokol ICMP (Internet Control Message Protocol), dan pada OSI berada
dilayer 3 (Datalink Layer).
NPEv2.1 | 1
PEMBAHASAN PROGRAM
1 2 3
Keterangan :
3. Mengetahui ip dan jumlahnya yang terhubung dengan computer pada suatu jaringan.
Dengan dasar perintah ‘ifconfig dan broadcast ‘ping’ program ini dapat melihat ip yang
terhubung dengan computer.
NPEv2.1 | 2
Fasilitas scan ip yang aktif :
Aliran pemrosesan :
192.168.1.7 192.168.1.4
Local connection
output
input
Command
Prompt
Local DB Local webServer
NPEv2.1 | 3
Cara kerja program :
Pertama program akan menjalankan command terminal ‘ifconfig’ untuk mengetahui ip yang dimiliki oleh
computer.
$iplocal1=shell_exec("/sbin/ifconfig wlan0 | grep 'inet addr' | sed 's/\:/ /g' | awk '{print $3}' | sed 's/\./ /g' | awk '{print $1}'");
$iplocal2=shell_exec("/sbin/ifconfig wlan0 | grep 'inet addr' | sed 's/\:/ /g' | awk '{print $3}' | sed 's/\./ /g' | awk '{print $2}'");
$iplocal3=shell_exec("/sbin/ifconfig wlan0 | grep 'inet addr' | sed 's/\:/ /g' | awk '{print $3}' | sed 's/\./ /g' | awk '{print $3}'");
$iplocal4=shell_exec("/sbin/ifconfig wlan0 | grep 'inet addr' | sed 's/\:/ /g' | awk '{print $3}' | sed 's/\./ /g' | awk '{print $4}'");
Sebagai contoh disini digunakan port wlan0 (Wireless), dengan adanya perintah “grep 'inet addr' | sed 's/\:/ /g'
| awk '{print $3}' | sed 's/\./ /g' | awk '{print $1}'");” kita dapat memisahkan ip per octet.
Kemudian setelah ip computer di dapat maka akan dijalankan perintah untuk mengetahui networkmask
sumbernya.
$netmask1=shell_exec("/sbin/ifconfig wlan0 | grep Mask | sed 's/\:/ /g' | awk '{print $7}' | sed 's/\./ /g' | awk '{print $1}'");
$netmask2=shell_exec("/sbin/ifconfig wlan0 | grep Mask | sed 's/\:/ /g' | awk '{print $7}' | sed 's/\./ /g' | awk '{print $2}'");
$netmask3=shell_exec("/sbin/ifconfig wlan0 | grep Mask | sed 's/\:/ /g' | awk '{print $7}' | sed 's/\./ /g' | awk '{print $3}'");
$netmask4=shell_exec("/sbin/ifconfig wlan0 | grep Mask | sed 's/\:/ /g' | awk '{print $7}' | sed 's/\./ /g' | awk '{print $4}'");
Setelah itu program akan mengconvertnya menjadi bentuk bilangan biner untuk menghitung range ip
$biniplocal1= decbin($iplocal1);
$biniplocal2= decbin($iplocal2);
$biniplocal3= decbin($iplocal3);
$biniplocal4= decbin($iplocal4);
$binnetmask1 = decbin($netmask1);
$binnetmask2 = decbin($netmask2);
$binnetmask3 = decbin($netmask3);
$binnetmask4 = decbin($netmask4);
NPEv2.1 | 4
Setelah mendapatkan ip bentuk biner, maka ip tersebut akan di AND kan dengan networmask dalam
bentuk biner untuk mengetahui ip network.
$network1=bindec($binnetwork1);
$network2=bindec($binnetwork2);
$network3=bindec($binnetwork3);
$network4=bindec($binnetwork4);
else
echo "point2point";
if($netmask2 <255)
NPEv2.1 | 5
}
else
echo "point2point";
else
echo "point2point";
else
echo "point2point";
Sekarang program telah mendapatkan seluruh data untuk melakukan pengecekan jaringan, kemudian
program akan menjalankan perintah ping yang di ulang sebanyak range jaringan secara broadcast
kemudiah hasil yang berbentuk ip dan nilai received akan disimpan di database untuk di olah kembali.
NPEv2.1 | 6
$satu = 11111111;
$prarange=($binnetwork4 | $satu);
$range=(bindec($prarange)-1);
$buatPing = $network + 1;
$nilai=shell_exec("ping -q -w 1 $network1.$network2.$network3.$i | grep packet | awk '{print $6}' | sed 's/\%/ /g'");
$iparray=array($ip);
$nilaiarray=array($nilai);
//query
Setelah berhasil maka program akan memfilter ip yang bernilai < 100 (tersambung) kemudian
menampilkannya di layar .
while($baris=mysql_fetch_assoc($nyambung)){
echo $baris['ip'];
Namun karena program ini mengeksekui fungsi php ‘shell_exec’ dan memanggil perintah terminal di
linux berupa ‘ping’ yang dapat memilih hasil keluaran, maka program ini hanya berjalan di system
operasi linux. (program dibuat pada Linux distro Ubuntu 10).
NPEv2.1 | 7