Cara Buat Aplikasi Billing Warnet
Tentang billing lagi
Ternyata dengan sedikit trik, komunikasi dengan server billing dan client bisa dilakukan. Di klien kita dapat menggunakan program Lynx yaitu program web browser berbasis teks.
Saat Ubuntu atau GNOME desktop dijalankan (bisa juga diterapkan di KDE), saya membuat supaya komputer tersebut mendaftar ke server atau istilahnya “melapor” ke server. kata-kata client tersebut bisa diungkapkan seperti ini:
“Hei, saya dengan IP: 192.168.0.10 dengan ID 10 mendaftar…”
Nah perintah dengan menggunakan Lynx, sebagai berikut:
lynx -dump http://ip_server/daftar.php?cid=10
Entar di server akan dicek IP dengan menggunakan variabel $_SERVER['REMOTE_ADDR'], trus dengan berbekal variabel cid, maka komputer tersebuat dapat didaftarkan ke dalam database dan diset flag client tersebut menjadi ON.
Nah mudah bukan? Di browser server akan kelihatan bahwa client yang aktif apa, waktu startnya jam berapa. Sekarang yang menjadi masalah, saat user berhenti menggunakan komputer. Bagusnya sih ada tombol “STOP” untuk user jika ingin berhenti menggunakan komputer. Saya udah buatkan sih tapi make gdesklets (jadi susah kalau make KDE, harus make Karamba). Itupun baru terbatas menampilkan waktu start, nama client dan harga. Saya usahakan supaya bisa dibuat tombol stop yang akan mengarahkan request ke billing server dan menghentikan waktu akses internet.
Nah, saya sudah coba memakai ssh, dan memang enak jika sudah disetting key dari server untuk mengakses komputer client tanpa menggunakan password. Caranya adalah:
- Buat keygen ssh untuk user di server:
ssh-keygen -t rsa
Enter dan enter aja kalau ada pertanyaan
- Setelah itu salin file di .ssh/id_rsa.pub ke masing-masing komputer client
- Di komputer client, setting keygen untuk root, caranya sama dengan langkah nomor 1
- salin file id_rsa.pub dari server ke file .ssh/authorized_keys di home folder root
- Coba akses komputer client:
ssh root@ip_client
Jika bisa diakses tanpa password, Anda telah berhasil!
- Coba dengan menggunakan perintah:
ssh root@ip_client /etc/init.d/gdm stop
Perintah di atas untuk mematikan desktop GNOME, setelah itu start ulang lagi
ssh root@ip_client /etc/init.d/gdm start
Jadi deh :D, sisa diaplikasikan ke skrip PHP atau Python (saya lebih suka PHP, lebih dikuasai siih). Syaratnya, fungsi shell_exec-nya tidak didisable.
Good Luck (kalau mau mencoba)…