Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: udp пакеты

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: cs,socket
HEL1X
Отправлено: 03 Февраля, 2014 - 22:48:05
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Нужно настроить правильно сокеты и протокол на мониторинге cs.

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // отключение предупреждений
  3.  
  4. $host = "127.0.0.1";  // localhost
  5. $user = "user";     // root
  6. $database = "db_name";
  7. $password = "pass";
  8.  
  9.  
  10.  
  11. // Соединяемся c базой данных
  12. $db = mysql_connect($host, $user, $password) or die("Не подключились к базе данных: " . mysql_error());
  13. print ("Подключились к базе данных<br><br>");
  14.  
  15. mysql_query("set character_set_client   ='utf8'"); // utf8 cp1251
  16. mysql_query("set character_set_results  ='utf8'"); // utf8 cp1251
  17. mysql_query("set collation_connection   ='utf8_general_ci'"); // utf8_general_ci cp1251_general_ci
  18.  
  19. // Выбор нужной базы данных
  20. mysql_select_db($database) or die ("Не могу найти базу данных");
  21.  
  22.  
  23. echo "
  24. <html>
  25. <head>
  26. <title>Обновление статистики серверов</title>
  27. <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
  28. </head>
  29. <body>";
  30.  
  31.  
  32. // число строк в таблице и полей в строке
  33. $q = mysql_query("SELECT * FROM md5_cs_servers");
  34. echo "В таблице md5_cs_servers ".mysql_num_rows($q)." записей<br>";
  35. echo "В таблице md5_cs_servers ".mysql_num_fields($q)." полей<br><br>";
  36.  
  37.  
  38. //@session_start();
  39.  
  40.  
  41. function recheck()
  42. {
  43.         global $db;
  44.          // обновляем данные в таблице
  45.                 $query="SELECT id, ip, port, name
  46.                         FROM md5_cs_servers";
  47.                 $result = mysql_query($query) or die("Ошибка : " . mysql_error());
  48.                
  49.                 while ($serv = mysql_fetch_array($result, MYSQL_ASSOC)) {
  50.        
  51.                 //}
  52.                
  53.                
  54.                
  55.                 //foreach($result as $serv)
  56.                 //{
  57.                         global $db;
  58.         $id = $serv['id'];     
  59.         $server = $serv['ip'];
  60.         $port = $serv['port'];
  61.        
  62.         $active = 1;
  63.         $map = '';
  64.         $fp = fsockopen ("udp://".$server,$port);
  65.         stream_set_timeout($fp, 2);    
  66.         if (!$fp)
  67.         { //если нет коннекта - сервер выключен
  68.                 $active = 0;
  69.         }
  70.         else
  71.         { // возможно что-то удастся прочитать
  72.         //
  73.         //"\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00".chr(10)  родной
  74.         //"\xFF\xFF\xFF\xFF\x54Source Engine Query\x00");
  75.        
  76.             fwrite($fp,"\xFF\xFF\xFF\xFFTSource Engine Query\x00");
  77.                 $start=time();
  78.                 socket_set_timeout($fp, 1);
  79.                 $st=fread($fp, 1);
  80.                 $r=socket_get_status($fp);
  81.                 $r=$r["unread_bytes"];
  82.                 $st.=fread($fp,$r);
  83.                 fclose($fp);
  84.                 $st=substr($st,5);
  85.                 $address=SubStr($st,0,StrPos($st,chr(0)));
  86.                 $address=str_replace(chr(0),"|",$address);
  87.                
  88.                 $st=SubStr($st,StrPos($st,chr(0))+1);
  89.                 $name=SubStr($st,0,StrPos($st,chr(0)));
  90.                
  91.                 $st=SubStr($st,StrPos($st,chr(0))+1);
  92.                 $map=SubStr($st,0,StrPos($st,chr(0)));
  93.                
  94.                 $st=SubStr($st,StrPos($st,chr(0))+1);
  95.                 $st=SubStr($st,StrPos($st,chr(0))+1);
  96.                 $st=SubStr($st,StrPos($st,chr(0))+1);
  97.                 $current=ord(SubStr($st,0,1));
  98.                
  99.                 $max=ord(SubStr($st,1,1));
  100.         }
  101.  
  102.        
  103.         //WHERE id='{$serv['id']}'
  104.         if ($active AND $map)
  105.         { // если есть ответ - обновляем инфу
  106.          //$format = r;
  107.         $date = date(U);
  108.         $time = date( "H:i:s" );
  109.         //для отладки
  110.         //echo "<i>".$time." (сервер обновлён)</i> Карта: [".$map."] Игроки: [".$current."/".$max."] IP:PORT: [".$serv['ip'].":".$serv['port']."] Имя: [".$name."] ID: [".$id."]<br>";
  111.                 //$query=
  112.                 mysql_query("UPDATE md5_cs_servers
  113.                             SET name='{$name}', map='{$map}', current='{$current}', max='{$max}', up_date='{$date}'
  114.                                 WHERE id='{$id}'
  115.                             LIMIT 1");
  116.                 //$db -> mysql_query($query) or die("Ошибка : " . mysql_error());      
  117.                            
  118.         }
  119.         else
  120.         { // иначе сервер выключен
  121.         //для отладки
  122.         //echo "<i>".$time." (сервер не ответил)</i> IP:PORT [".$serv['ip'].":".$serv['port']."] ID: [".$id."]<br>";
  123.                 //$query=
  124.                 mysql_query("UPDATE md5_cs_servers
  125.                         SET map='', current='0', max='0', up_date='{$date}'
  126.                WHERE id='{$id}'
  127.                                 LIMIT 1");
  128.                 //$db -> mysql_query($query) or die("Ошибка : " . mysql_error());      
  129.                                
  130.         }
  131.        
  132.  
  133.                 }
  134.                 // обновляем дату последней проверки
  135.                 //$db->query('UPDATE ?_last_check SET last_check = ?', time());
  136.        
  137. }
  138.  
  139.  
  140.  
  141.  
  142. echo "</body></html>";
  143.  
  144.  
  145.  
  146. // Закрываем соединение с бд
  147. //mysql_close($db);
  148.  
  149.  
  150. //function check_server($serv)
  151. //{
  152.        
  153. //}
  154.  
  155. ?>
  156.  
  157.  


Платно естественно !


Отредактировано модератором: OrmaJever, 04 Февраля, 2014 - 00:24:15
Не оставляйте свои данные в коде.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« FreeLance »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB