rootbisnisAvatar border
TS
rootbisnis
Pengkondisian IF ELSE PHP
Selamat sore OM,
Izin tanya Om,

1. Awal Mula :
------->>Saya punya beberapa IP yang telah didaftarkan di database (sekitar 15 s/d 20 IP),
------->>Kemudian saya punya keinginan untuk memantau tiap2 IP address tersebut apakah hidup atau mati, dan jika misalnya mati sudah berapa jam/hari matinya dan kapan terakhir kali hidupnya,

2. Solusi yang terpikirkan oleh saya yaitu dengan membuat script php yg dijalankan dgn crond untuk auto ping ke IP address tersebut dan hasilnya direcord ke database jika hidup maka statusnya = ALIVE dan jika mati maka statusnya=DOWN
Untuk hal ini sudah bisa jalan tidak Masalah,
Note : tablenya saya kasih 5 field yaitu : id | ipaddress | status | tglalive | tgldown

3. Masalah muncul ketika saya perhatikan baik2 ternyata ketika setiap kali dijalankan scriptnya maka dia akan update semua field2nya,
Contoh hasilnya ketika di jalankan :
===================================================
3.A. Jika misalnya IP yang diping reply dan belum ada ditable maka akan dia insert :
ipaddress = 192.168.1.3
status = ALIVE
tglalive = 2015-10-02 17:42:20
tgldown =

3.B. Dan ketika dijalankan lagi scriptnya dan IP 192.168.1.3 tidak bisa diping maka hasilnya :
ipaddress = 192.168.1.3
status = DOWN
tglalive =
tgldown = 2015-10-02 17:42:21

3.C. Dan ketika dijalankan lagi scriptnya dan mislanya IP 192.168.1.3 sudah bisa diping lagi maka hasilnya :
ipaddress = 192.168.1.3
status = ALIVE
tglalive = 2015-10-02 17:42:22
tgldown =

Dan begitu seterusnya, termasuk untuk IP address yang lainnya,
===================================================
Nah sehingga dengan kondisi seperti ini sulit untuk mendata berapa Menit/jam/hari IP address tersebut terakhir down dan kapan terakhir kali hidupnya
Mungkin akan bisa didata berapa menit/jam/hari sebuah IP address downnya jika misalnya hasilnya seperti ini :
===================================================
4.A. Jika misalnya IP yang diping reply dan belum ada ditable maka akan dia insert :
ipaddress = 192.168.1.3
status = ALIVE
tglalive = 2015-10-02 17:42:20
tgldown =

4.B. Dan ketika dijalankan lagi scriptnya dan IP 192.168.1.3 tidak bisa diping maka hasilnya :
ipaddress = 192.168.1.3
status = DOWN
tglalive = 2015-10-02 17:42:20
tgldown = 2015-10-02 17:42:21

4.C. Dan ketika dijalankan lagi scriptnya dan mislanya IP 192.168.1.3 sudah bisa diping lagi maka hasilnya :
ipaddress = 192.168.1.3
status = ALIVE
tglalive = 2015-10-02 17:42:22
tgldown = 2015-10-02 17:42:21

Dan begitu seterusnya, termasuk untuk IP address yang lainnya, Namun untuk bisa seperti ini saya belum bisa melakukannya, mungkin Om2 di sini mau membantu saya kira2 bagaimana cara agar bisa tercapai tujuan tersebut
===================================================

5. Berikut script yang saya coba2 yang masih belum berjalan dgn baik :
Code:
<?php
function pingAddress($ip) {
$date = date("Y-m-d H:i:s");
include("koneksi.php");

$pingresult = exec("ping -c1 $ip", $outcome, $status);
if (0 == $status) {
$query = "SELECT ipaddress from coba";
$result = mysqli_query($con, $query);
while(list($ipaddress) = mysqli_fetch_row($result)) {
if ($ipaddress == '$ip' AND $status == 'ALIVE') {
mysqli_close($con);

}else{
mysqli_query($con,"REPLACE INTO coba (ipaddress,status,tglalive) VALUES ('$ip','ALIVE','$date')");
}
}
} else {
$query = "SELECT ipaddress from coba";
$result = mysqli_query($con, $query);
while(list($ipaddress) = mysqli_fetch_row($result)) {
if ($ipaddress == '$ip' AND $status == 'DOWN') {
mysqli_close($con);

}else{
mysqli_query($con,"REPLACE INTO coba (ipaddress,status,tgldown) VALUES ('$ip','DOWN','$date')");
mysqli_close($con);
}
}
}
}
include("koneksi.php");
$query = "SELECT ipaddress from daftarip";
$result = mysqli_query($con, $query);
while(list($ipaddress) = mysqli_fetch_row($result)) {
pingAddress($ipaddress);
}
0
2.8K
16
GuestAvatar border
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Urutan
Terbaru
Terlama
GuestAvatar border
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Komunitas Pilihan