PING, udah tahu ping kan? Ping biasanya digunakan untuk mengecek suatu IP apakah sedang ‘live’ atau tidak. Tapi tahukah Anda PING itu adalah akronim dari Packet Internet Network Groper? Kalo ngga tau ya ngga apa apa :), yang penting tahu fungsinya aja 🙂 . PING ini sebenarnya adalah paket yang dikirim melalui protokol ICMP (Internet Control Message Protocol) ke network interface (contoh : ethernet card) yang memiliki IP tertentu. Jika network interface tersebut sedang live/in service, maka ia akan me-reply balik paket data tersebut ke pengirim. Dengan membaca waktu round trip paket data, kita dapat menganalisa performance jaringan yang dilewati paket data tersebut menuju IP tujuan PING.
Untuk lebih jelasnya mengenai PING, mungkin Anda bisa googling dulu di internet. Di sini saya akan coba menjelaskan cara mudah membuat aplikasi PING dengan Delphi. Ya, dengan Delphi. Kalau biasanya kita menge-PING kan menggunakan jendala command prompt, nah kali ini kita akan coba membuat software-nya sendiri sehingga bisa kita custom sesuai kebutuhan, misal mengeping otomatis tiap 5 menit sekali atau membuat jadwal PING tiap hari pada jam tertentu. Dan enaknya, kita bisa membuat semacam exception sendiri, misalnya jika gagal PING atau RTO (Request Time Out) kita bisa membuat script antipatif-nya misal dengan mengirim SMS atau notifikasi ke user tertentu. Intinya sih bisa custom sesuai kebutuhan Anda.
Untuk membuat aplikasi PING dengan Delphi, cara paling mudah adalah menggunakan komponen TIdIcmpClient yang masuk dalam tab komponen ‘IndyClient’. Komponen Indy merupakan komponen bawaan Delphi XE8, jadi Anda tidak perlu menginstalnya secara manual. Untuk membuat aplikasi PING dengan Delphi, buatlah sebuah project baru dan simpan dengan nama (misalnya) ‘PPing’. Tambahkan komponen TIdIcmpClient (1 buah), TLabel (1 bh), TEdit (1 bh), TTimer (1 bh), TMemo(1 bh) dan komponen TButton (2 bh). Atur peletakannya seperti pada gambar di bawah.
Kemudian atur properti masing-masing komponen sebagai berikut
Komponen | Properti | Nilai |
Button1 | Caption | Start |
Button2 | Caption | Stop |
Timer | Interval | 1000 |
Edit1 | Text | dikosongkan |
Memo1 | Lines | dikosongkan |
Selanjutnya, isikan event handler untuk komponen IcmpClient1 sebagai berikut:
procedure TForm1.IdIcmpClient1Reply(ASender: TComponent; const AReplyStatus: TReplyStatus); var sTime: string; begin if (AReplyStatus.MsRoundTripTime = 0) then sTime := '<1' else sTime := '='; memo1.lines.Add(Format('%d bytes from %s: icmp_seq=%d ttl=%d time%s%d ms', [AReplyStatus.BytesReceived, AReplyStatus.FromIpAddress, AReplyStatus.SequenceId, AReplyStatus.TimeToLive, sTime, AReplyStatus.MsRoundTripTime])); if (AReplyStatus.BytesReceived>0) AND (AReplyStatus.TimeToLive>0) then status:='up' else status:='down'; end;
Isikan even handler onTimer milik kompoen Timer1 sebagai berikut. Komponen Timer1 inilah yang nantinya akan menge-ping ip di kotak Edit1 setiap 5 detik sekali (sesuai settingan interval timer di Object Inspector)
procedure TForm1.Timer1Timer(Sender: TObject); begin IdIcmpClient1.Host:= edit1.Text; IdIcmpClient1.ReceiveTimeout := 1000; try idICMPClient1.Ping(); finally // Memo1.Lines.Add('Bytes received: ' + // IntToStr(idICMPClient1.ReplyStatus.BytesReceived)); end; end;
Langkah terakhir, tambahakan perintah berikut di tombol ‘Start’ dan ‘Stop’ untuk menghidupkan Timer1 (memulai PING) dan mematikan Timer1 (menghentikan PING)
procedure TForm1.Button1Click(Sender: TObject); begin timer1.Enabled:=true; end;
procedure TForm1.Button2Click(Sender: TObject); begin timer1.Enabled:=false; end;
Jika sudah, silahkan di RUN script di atas (tekan tombol F9). Jika semua settingan sudah benar, maka aplikasi ‘PPING’ akan tampak seperti berikut
Isikan IP address yang akan di-PING dan tekan tombol ‘Start’, maka hasil PING Anda akan terlihat di kotak Memo1 seperti gambar berikut:
Aplikasi PPing di atas dapat digunakan untuk mengecek hidup/tidaknya suatu network interface (IP) dari suatu perangkat, misalnya router, Access Point, server, workstation, dll. Anda dapat menambahkan sedikit script ‘action’ yang lain misalkan LED hijau untuk perangkat yang aktif dan LED merah untuk perangkat yang ‘down’, sehingga Anda akan mempunyai tools ‘Network Monitoring’ sederhana. Selamat berkreasi …
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
variable status undefined bro.