<?php
date_default_timezone_set('America/Monterrey');

  include "../config/config.php";//Contiene funcion que conecta a la base de datos
 include "../lib/funciones.php";
class CheckDevice {
    public function myOS(){
        if (strtoupper(substr(PHP_OS, 0, 3)) === (chr(87).chr(73).chr(78)))
            return true;
        return false;
    }
    public function ping($ip_addr){
        if ($this->myOS()){
            if (!exec("ping -n 1 -w 1 ".$ip_addr." 2>NUL > NUL && (echo 0) || (echo 1)"))
                return true;
        } else {
            if (!exec("ping -q -c3 ".$ip_addr." >/dev/null 2>&1 ; echo $?"))
                return true;
        }
        return false;
    }
}

   $sql="SELECT * FROM estatus_servicios ORDER BY orden ASC";


        $queryc = mysqli_query($con, $sql);
         $numrows = mysqli_num_rows($queryc);
        if ($numrows>0){
          while ($r=mysqli_fetch_array($queryc)) {
              $ruta=$r['ruta'];  
                 $id_ser=$r['id_servicio'];
                    $nombres=$r['nombre'];
                    $f_ac=date("Y-m-d H:i:s");

                        //REVISAR EL STATUS ANTERIOR
                     $queryU = mysqli_query($con, "SELECT * FROM estatus_servicios where id_servicio=$id_ser");
                     while ($rA=mysqli_fetch_array($queryU)) {
                         $estatusU=$rA['estatus'];
                         $actU=$rA['act'];
                         $actUc=$rA['act_correc'];
                         $actUe=$rA['act_error'];
                        
                      }
                    //  echo "estatun ant. ".$estatusU;
                    
          
              
              if ((new CheckDevice())->ping($ruta)){
                $estatus="ONLINE";
                $color="green";
                if ($estatusU==$estatus) {
                    //echo" el estatus no cambio sigue ONLINE";
                }else{
                       $sqlh="insert into hist_estatus (idServicio, actU, estatusU, actA, estatusA) value ($id_ser,'$actUe','$estatusU','$f_ac','$estatus')";
                         $addh=mysqli_query($con,$sqlh);
                        if($addh)
                         {
                          // echo "hubo canmbio  a ONLINE mandar correo ";
                          //  include "../lib/mailnoti.php";
                         }else{
                          //  echo"error al insert";
                         }

                }
                $sql="update estatus_servicios set act=\"$f_ac\",estatus=\"$estatus\",act_correc=\"$f_ac\" where id_servicio=$id_ser";
                $query_update = mysqli_query($con,$sql);
                 if ($query_update){
              
                     include "tabla.php";
                  }
               
                }
            else {

                 $estatus="OFFLINE";
                 $color="red";
                    if ($estatusU==$estatus) {
                   // echo"el estatus no cambio sigue OFFLINE";
                }else{
                  $sqlh="insert into hist_estatus (idServicio, actU, estatusU, actA, estatusA) value ($id_ser,'$actUc','$estatusU','$f_ac','$estatus')";
                         $addh=mysqli_query($con,$sqlh);
                        if($addh)
                         {
                        //    echo "hubo canmbio a OFFLINE mandar correo ";
                          //  include "../lib/mailnoti.php";
                         }else{
                            //echo"error al insert";
                         }
                }
                $sql="update estatus_servicios set act=\"$f_ac\",estatus=\"$estatus\",act_error=\"$f_ac\" where id_servicio=$id_ser";
                $query_update = mysqli_query($con,$sql);
                 if ($query_update){

                        include "tabla.php";
                 

                 }
                  
                }
         
          }
          

        }



?>