Advertisement
Guest User

Untitled

a guest
Feb 16th, 2016
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.94 KB | None | 0 0
  1. <?php
  2. class server {
  3.     public $ch;
  4.     public $ip;
  5.     public $port;
  6.     public $enabled;
  7.     public $prev;
  8.    
  9.     function check() {
  10.         $socket = @fsockopen($this->ip, $this->port, $errno, $errstr, 0.1);
  11.         $running;
  12.        
  13.         if ($socket) {
  14.             $running = true;
  15.             fclose($socket);
  16.         } else
  17.             $running = false;
  18.        
  19.         if ($running && !$this->prev) {
  20.             $this->enabled = date('Y-m-d H:i:s');
  21.             $this->prev = 1;
  22.             return true;
  23.         }
  24.        
  25.         if (!$running && $this->prev) {
  26.             $this->enabled = NULL;
  27.             $this->prev = 0;
  28.             return true;
  29.         }
  30.        
  31.         return false;
  32.     }
  33. }
  34.  
  35. $host = "localhost";
  36. $user = "root";
  37. $password = "root";
  38. $dbName = "metin";
  39. $dsn = 'mysql:host='.$host.';dbname='.$dbName;
  40. $options = array(
  41.             PDO::ATTR_PERSISTENT => true,
  42.             PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
  43.         );
  44.  
  45. $db = new PDO($dsn, $user, $password, $options);
  46.  
  47. $stmt = $db->prepare("SELECT * FROM czech");
  48. $stmt->execute();
  49. $result = $stmt->fetchAll(PDO::FETCH_CLASS, "server");
  50.  
  51. $changed = array();
  52.  
  53. foreach ($result as $server) {
  54.     if ($server->check())
  55.         $changed[] = $server;
  56. }
  57.  
  58. if (!empty($changed)) {
  59.     $enabled;
  60.     $prev;
  61.     $ch;
  62.    
  63.     try {
  64.         $db->beginTransaction();
  65.  
  66.         $stmt = $db->prepare("UPDATE czech SET enabled=:enabled, prev=:prev WHERE ch=:ch");
  67.         $stmt->bindParam(':enabled', $enabled);
  68.         $stmt->bindParam(':prev', $prev);
  69.         $stmt->bindParam(':ch', $ch, PDO::PARAM_INT);
  70.  
  71.         foreach ($changed as $server) {
  72.             $enabled = $server->enabled;
  73.             $ch = $server->ch;
  74.             $prev = $server->prev;
  75.             $stmt->execute();
  76.         }
  77.        
  78.         $db->commit();
  79.     } catch (PDOException $ex) {
  80.         echo $ex->getMessage();
  81.         $db->rollBack();
  82.     }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement