PHP.SU

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

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

> Найдено сообщений: 30
DbIm Отправлено: 18 Апреля, 2012 - 18:33:42 • Тема: PHP fsockopen UDP, send command (HLDS) • Форум: HTTP и PHP

Ответов: 0
Просмотров: 1509
Здарова всем =)
Вот хотелось бы реализовать, что есть: программа hlds.exe консольная, Windows Server 2008 и команда fsockopen Голливудская улыбка
Уже видел скриптик который умел направлять команды на сервер, но к своему сожелению его потерял, помню только то, что скрипт был основан fsockopen.
Для начала мне нужна хоть какая-то возможность отправить команду в консоль с сайта.
PHP:
скопировать код в буфер обмена
  1. $server_ip = "109.60.184.246";
  2. $server_port = "27015";
  3. $fp = fsockopen ("udp://". $server_ip, $server_port, $errno, $errstr, 2);
  4. if (!$fp) {
  5. echo "ERROR: $errno - $errstr<br>\n";
  6. } else {
  7. fwrite($fp,"\n");
  8. echo fread($fp, 26);
  9. fclose($fp);
  10. }
  11.  

Этим мы можем коннектица к серверу, но как послать ему команду? подскажите.....
Знаю, что точно можно =) Но вопрос как? Скрипт был не больше моего сообщения =) Думаю знающие люди тут найдутся.
(Добавление)
Аль раздельчиком ошибся, а то всё поделили, если ошибся прошу не удалять, а перенести в соответсвующий раздел =)
DbIm Отправлено: 25 Июня, 2011 - 12:12:20 • Тема: Пока просто вопрос..... • Форум: Операционная система и системные вызовы

Ответов: 8
Просмотров: 3541
Хм..... Ладно буду разбиратся.
Спасибо.
DbIm Отправлено: 25 Июня, 2011 - 11:58:42 • Тема: Пока просто вопрос..... • Форум: Операционная система и системные вызовы

Ответов: 8
Просмотров: 3541
компания? Это как.....?
Извините за тупой, наверно, вопрос....
DbIm Отправлено: 25 Июня, 2011 - 11:47:55 • Тема: Пока просто вопрос..... • Форум: Операционная система и системные вызовы

Ответов: 8
Просмотров: 3541
Ну собственно да, т.е. написал команду на сайте, она выполнилась в консоли программы на localhoste.
DbIm Отправлено: 25 Июня, 2011 - 03:55:43 • Тема: Пока просто вопрос..... • Форум: Операционная система и системные вызовы

Ответов: 8
Просмотров: 3541
Есть ли возможность через PHP, управлять консолью, программы?( OS Linux )
Т.е. написать что-то в консоль программы и естественно выполнить..... ssh2? Или и без него можно?
Буду очень признателен.
DbIm Отправлено: 25 Июня, 2011 - 03:28:47 • Тема: Linux + PHP (вывод реального времяни или из log файла) • Форум: Напишите за меня, пожалуйста

Ответов: 11
Просмотров: 139
Я еще поковыряюсЬ. уверяю Голливудская улыбка
(Добавление)
Спасибо!!!!! Голливудская улыбка
(Добавление)
Спасибо В конце коцов все вот так вышло:
CODE (htmlphp):
скопировать код в буфер обмена
  1. echo '<p align="center"><br><textarea rows=30 cols=100 name=fileentry>';
  2.     echo exec("tail -n 40 ./log.log", $rgResult);
  3.         foreach ($rgResult as $line) echo "$line\n";
  4. echo '</textarea>'; echo "<br>";

Может кому то понадобится Голливудская улыбка
DbIm Отправлено: 25 Июня, 2011 - 02:56:09 • Тема: Linux + PHP (вывод реального времяни или из log файла) • Форум: Напишите за меня, пожалуйста

Ответов: 11
Просмотров: 139
4444444444
(Добавление)
EuGen пишет:
exec("tail -n 30 path/to/file", $rgResult);
var_dump($rgResult);

CODE (htmlphp):
скопировать код в буфер обмена
  1. array(30) { [0]=> string(65) " Invalid address "65.73.232.251:27010", setmaster command ignored" [1]=> string(65) " Invalid address "65.73.232.253:27010", setmaster command ignored" [2]=> string(37) "Adding master at 92.248.152.185:27010" [3]=> string(37) "Adding master at 188.17.245.102:27010" [4]=> string(65) " Invalid address "72.165.61.189:27010", setmaster command ignored" [5]=> string(35) "Adding master at 68.142.72.25:27010" [6]=> string(20) "exec server.cfg DONE" [7]=> string(104) "[AMXBans] Загружен список из 6 администраторов из базы данных" [8]=> string(83) "Menu item 18 added to Menus Front-End: "Plugin Cvars" from plugin "pluginmenu.amxx"" [9]=> string(86) "Menu item 19 added to Menus Front-End: "Plugin Commands" from plugin "pluginmenu.amxx"" [10]=> string(77) "[AMXBans] 8 причин(а) банов(а) загружены(а) из БД." [11]=> string(0) "" [12]=> string(24) " [Zeus] Author: sector" [13]=> string(22) " [Zeus] Version: 1.7" [14]=> string(27) " [Zeus] Web: cs-people.ru" [15]=> string(33) " [Zeus] Install Zeus Anti-Cheat" [16]=> string(0) "" [17]=> string(39) "Connection to Steam servers successful." [18]=> string(32) " VAC secure mode is activated." [19]=> string(110) "Menu item 20 added to Menus Front-End: "AMXBans: Помеченные игроки" from plugin "AMXBans Main"" [20]=> string(112) "Menu item 21 added to Menus Front-End: "AMXBans: Отключенные игроки" from plugin "AMXBans Main"" [21]=> string(102) "Menu item 22 added to Menus Front-End: "AMXBans: История банов" from plugin "AMXBans Main"" [22]=> string(88) "Menu item 23 added to Menus Front-End: "AMXBans: Screens" from plugin "AMXBans: Screens"" [23]=> string(54) "L 06/25/2011 - 03:49:36: World triggered "Round_Start"" [24]=> string(76) "L 06/25/2011 - 03:54:36: Team "CT" triggered "Target_Saved" (CT "1") (T "0")" [25]=> string(52) "L 06/25/2011 - 03:54:36: World triggered "Round_End"" [26]=> string(54) "L 06/25/2011 - 03:54:41: World triggered "Round_Start"" [27]=> string(76) "L 06/25/2011 - 03:56:26: Team "CT" triggered "Target_Saved" (CT "2") (T "0")" [28]=> string(52) "L 06/25/2011 - 03:56:26: World triggered "Round_End"" [29]=> string(54) "L 06/25/2011 - 03:56:31: World triggered "Round_Start"" }


Собственно все в одну строку да и string() мешает(((
(Добавление)
Лезу я не в свою тарелку PHP не знаю, а поэксперементировать хочется..... Почти всю панель сделал......
DbIm Отправлено: 25 Июня, 2011 - 02:19:54 • Тема: Linux + PHP (вывод реального времяни или из log файла) • Форум: Напишите за меня, пожалуйста

Ответов: 11
Просмотров: 139
EuGen пишет:
exec("tail -n 30 path/to/file", $rgResult);

Этот код выводит 30 строку с конца, а не все 30 строк с конца.......... Или я ошибся?
CODE (htmlphp):
скопировать код в буфер обмена
  1.     echo exec("tail -n 30 ./log.log") ; echo "<br>";

30 строчка выводится
DbIm Отправлено: 25 Июня, 2011 - 00:31:18 • Тема: Linux + PHP (вывод реального времяни или из log файла) • Форум: Напишите за меня, пожалуйста

Ответов: 11
Просмотров: 139
Т.е.? а как можно? Собственно проблема в долгой загрузке и нагрузке на сеть, есть возможность, убить 2 зайцев одновременно?
Эх наверно мой вопрос довольно тупо звучит Голливудская улыбка..........
DbIm Отправлено: 25 Июня, 2011 - 00:22:56 • Тема: Linux + PHP (вывод реального времяни или из log файла) • Форум: Напишите за меня, пожалуйста

Ответов: 11
Просмотров: 139
Тоесть, невозможно, я так понял?
DbIm Отправлено: 25 Июня, 2011 - 00:13:56 • Тема: Linux + PHP (вывод реального времяни или из log файла) • Форум: Напишите за меня, пожалуйста

Ответов: 11
Просмотров: 139
Имеется программа вывод которой идет в консоль. Вопрос Голливудская улыбка! Возможно ли сделать вывод консоли на сайт в ральном времяни (не результат а построчно, в реальном времяни). Нельзя? - Не проблема.
Вопрос №2 Голливудская улыбка
Имеется лог файл, данной программы, и вот собственно это разумней мне кажется...... Помогите создать скрипт, чтения этого лог файла, но не всего лог файла а например его последние 30 строк(лог файл очень большой....), ну так мимолётом хотелось бы что бы последние 30 строк эти обновлялись, каждые 3 секунды(например)
Что имеется.... Уже есть скрипт вывода этого лог файла на сайт вот он... Ну точнее отрывок.... Но этот лог файл много "Весит" и долго грузится.......
Вот собственно почему мне нужен скрипт.....
CODE (htmlphp):
скопировать код в буфер обмена
  1.                                 echo "[<b>".(is_readable($file) ? '<font color=green>Консоль.......</font>' : '<font color=red>Консоль не доступна!</font>')."</b>]
  2.                                 <p align=center><textarea name=content cols=100 rows=30>".htmlspecialchars(file_get_contents($file))."</textarea></p>
  3.                                 </form>";

Вот собственно хотелось бы подобный код, только который выводил бы из $file только последние 30 строк......
Буду очень признателен.
DbIm Отправлено: 08 Июня, 2011 - 17:02:04 • Тема: PHP + Linux + Cs 1.6 # Players • Форум: Если скрипт не работает

Ответов: 11
Просмотров: 6083
Извините, я этого не говорил, но может быть ошибка в том что этот скрипт для CSM DLE? Хотя я подумал разницы быть не должно..... Но все же.......
Передать '' тоже не прокатило Голливудская улыбка
(Добавление)
Попробовал на CSM DLE, тоже не работает...........
DbIm Отправлено: 08 Июня, 2011 - 16:40:56 • Тема: PHP + Linux + Cs 1.6 # Players • Форум: Если скрипт не работает

Ответов: 11
Просмотров: 6083
А кое что я понял) Эти константы так и должны быть, все должно работать без них ошибка не там..........Мониторинг когда я в .htaccess указал php_flag display_errors 1, тоже выдал мне ошибку о константе hostname, но hostname прекрассно отображается в мониторинге............... Отладку сделать не смогу........... Вариантов решения проблемы больше не существует?
DbIm Отправлено: 08 Июня, 2011 - 16:18:51 • Тема: PHP + Linux + Cs 1.6 # Players • Форум: Если скрипт не работает

Ответов: 11
Просмотров: 6083
Я в курсе......... Но не знаю где эту константу взять........
DbIm Отправлено: 08 Июня, 2011 - 14:05:11 • Тема: PHP + Linux + Cs 1.6 # Players • Форум: Если скрипт не работает

Ответов: 11
Просмотров: 6083
Блинаааа как все нудно)
(Добавление)
Собственно нашел новый скрипт............ который проше и больше подходит.
CODE (php):
скопировать код в буфер обмена
  1. ini_set('display_errors',1);
  2. include_once "./include/head.php";
  3.  
  4.   $player_list = monitor_server_cs_full("109.60.184.246", 27015, halflife, players);
  5.  
  6.  
  7.  
  8. //------------------////////////////----------------------------------------------------
  9.  
  10.   function monitor_server_cs_full($ip, $port, $game, $request)
  11.  
  12.     {
  13.  
  14.         $fp = @fsockopen("udp://$ip", $port, $errno, $errstr, 1);
  15.  
  16.         if (!$fp) { return FALSE; }
  17.  
  18.         stream_set_timeout($fp, 1, 0);
  19.  
  20.         stream_set_blocking($fp, true);  
  21.  
  22.         if (($request == "settings" || $request == "players"))
  23.  
  24.         {
  25.  
  26.         $challenge_code = "\xFF\xFF\xFF\xFF\x57";
  27.  
  28.         fwrite($fp, $challenge_code);
  29.  
  30.         $buffer = fread($fp, 4096);
  31.  
  32.         if (!trim($buffer)) { fclose($fp); return FALSE; }
  33.  
  34.         $challenge_code = substr($buffer, 5, 4);
  35.  
  36.     }
  37.  
  38.         if ($request == "info")     { $challenge = "\xFF\xFF\xFF\xFFTSource Engine Query\x00"; }
  39.  
  40.         if ($request == "players")  { $challenge = "\xFF\xFF\xFF\xFFU".$challenge_code;        }
  41.  
  42.         if ($request == "settings") { $challenge = "\xFF\xFF\xFF\xFFV".$challenge_code;        }
  43.  
  44.         fwrite($fp, $challenge);
  45.  
  46.         $buffer = fread($fp, 4096);
  47.  
  48.         if (!$buffer) { fclose($fp); return FALSE; }      
  49.  
  50.         if ($request == "settings")
  51.  
  52.         {
  53.  
  54.         $second_packet = fread($fp, 4096);
  55.  
  56.         if (strlen($second_packet) > 0)
  57.  
  58.         {
  59.  
  60.         $reverse_check = dechex(ord($buffer[8]));    
  61.  
  62.         if ($reverse_check[0] == "1")
  63.  
  64.         {
  65.  
  66.         $tmp           = $buffer;                
  67.  
  68.         $buffer        = $second_packet;
  69.  
  70.         $second_packet = $tmp;
  71.  
  72.         }
  73.  
  74.         $buffer        = substr($buffer, 13);        
  75.  
  76.         $second_packet = substr($second_packet, 9);  
  77.  
  78.         $buffer        = trim($buffer.$second_packet);
  79.  
  80.         }
  81.  
  82.         else
  83.  
  84.         {
  85.  
  86.         $buffer = trim(substr($buffer, 4));
  87.  
  88.         }
  89.  
  90.         }
  91.  
  92.         else
  93.  
  94.         {
  95.  
  96.         $buffer = trim(substr($buffer, 4));
  97.  
  98.         }
  99.  
  100.         fclose($fp);
  101.  
  102.         if (!trim($buffer)) { return FALSE; }
  103.  
  104.         //---------------------------------------------------------+
  105.  
  106.         if ($request == "info")
  107.  
  108.         {
  109.  
  110.         unset($data);
  111.  
  112.         $tmp = explode("\x00", $buffer);
  113.  
  114.                  $place = strlen($tmp[0].$tmp[1].$tmp[2].$tmp[3].$tmp[4]) + 5;
  115.  
  116.                     $data['mapname']        = $tmp[1];                                  //name map in server now
  117.  
  118.                     $data['gamemod']        = $tmp[2];                                  //name modification Half Life
  119.  
  120.                         $data['Ngamemod']       = $tmp[3];                                      //name server
  121.  
  122.                     $data['players']     = ord($buffer[$place + 1]);
  123.  
  124.                         $data['maxplayers']  = ord($buffer[$place + 2]);
  125.  
  126.                     $data['numbots']       = ord($buffer[$place + 3]);  // BOTS
  127.  
  128.                         $data['ip'] = $ip;
  129.  
  130.                     $data['server_os']      = $buffer[$place + 5];      // W indows or L inux
  131.  
  132.                  return $data;  
  133.  
  134.                 }
  135.  
  136.         //---------------------------------------------------------+
  137.  
  138.         if ($request == "players")
  139.  
  140.         {
  141.  
  142.         $player_number = 0;
  143.  
  144.         $position = 2;                                              
  145.  
  146.         do
  147.  
  148.         {
  149.  
  150.         $player_number++;                                        
  151.  
  152.         $player[$player_number]['id'] = ord($buffer[$position]);
  153.  
  154.         $position ++;                                            
  155.  
  156.         while($buffer[$position] != "\x00" && $position < 4000)  
  157.  
  158.         {
  159.  
  160.         $player[$player_number]['name'] .= $buffer[$position];  
  161.  
  162.         $position ++;
  163.  
  164.         }
  165.  
  166.         $player[$player_number]['score'] = (ord($buffer[$position + 1]))
  167.  
  168.         + (ord($buffer[$position + 2]) * 256)
  169.  
  170.         + (ord($buffer[$position + 3]) * 65536)
  171.  
  172.         + (ord($buffer[$position + 4]) * 16777216);
  173.  
  174.         if ($player[$player_number]['score'] > 2147483648) { $player[$player_number]['score'] -= 4294967296; }  
  175.  
  176.         $time = substr($buffer, $position + 5, 4);                
  177.  
  178.         if (strlen($time) < 4) { return FALSE; }                  
  179.  
  180.         list(,$time) = unpack("f", $time);                      
  181.  
  182.         $time = mktime(0, 0, $time);                              
  183.  
  184.         $player[$player_number]['time'] = date("H:i:s", $time);  
  185.  
  186.         $position += 9;
  187.  
  188.         }
  189.  
  190.         while ($position < strlen($buffer));                        
  191.  
  192.         return $player;
  193.  
  194.         }
  195.  
  196.         //---------------------------------------------------------+
  197.  
  198.         if ($request == "settings")
  199.  
  200.         {
  201.  
  202.         $tmp     = substr($buffer, 2);
  203.  
  204.         $rawdata = explode("\x00", $tmp);
  205.  
  206.         for($i=1; $i<count($rawdata); $i=$i+2)
  207.  
  208.         {
  209.  
  210.         $rawdata[$i] = strtolower($rawdata[$i]);  
  211.  
  212.         $setting[$rawdata[$i]] = $rawdata[$i+1];  
  213.  
  214.         }
  215.  
  216.         return $setting;  
  217.  
  218.         }
  219.  
  220.  }
  221.  
  222. //------------------////////////////----------------------------------------------------  
  223.  
  224.   if (!$player_list) { echo "<div style='text-align:center'>Нет игроков или сервер не отвечает</div></body></html>"; return; }
  225.  
  226.  
  227.  
  228.   if (isset($player_list[1][score]) )  { $monitor_show_score  = 1; }
  229.  
  230.   if (isset($player_list[1][time])  )  { $monitor_show_time   = 1; }
  231.  
  232.  
  233.  
  234.   echo " <table class='gborder' cellpadding='1' border=1>
  235.  
  236.        <tr>
  237.  
  238.        <td width=50% align=center class='gborder'><b>Ник</b><br /></td>
  239.  
  240.        <td style='height:30px'><br /><br /></td>";
  241.  
  242.  
  243.  
  244.   if ($monitor_show_score ) { echo "<td width=20% align=center class='gborder'><b>Фраги    </b><br /></td>"; }
  245.  
  246.   if ($monitor_show_time)   { echo "<td width=30% align=center class='gborder'><b>Время в игре     </b><br /></td>"; }
  247.  
  248.  
  249.  
  250.   echo "</tr>";
  251.  
  252.   foreach ($player_list as $key=>$player)
  253.  
  254.   {
  255.  
  256.     if (function_exists("mb_convert_encoding"))
  257.  
  258.     {
  259.  
  260.       $player[name] = htmlspecialchars($player[name], ENT_QUOTES);
  261.  
  262.       $player[name] = @mb_convert_encoding($player[name],"HTML-ENTITIES","auto");
  263.  
  264.     }
  265.  
  266.     else
  267.  
  268.     {
  269.  
  270.       $player[name] = htmlentities($player[name], ENT_QUOTES);
  271.  
  272.     }
  273.  
  274.     echo "<tr><td width=50% align=center class='gborder'> $player[name] </td><td class='players_spacer'><br /></td>";
  275.  
  276.     if ($monitor_show_score)  { echo "<td width=20% align=center class='gborder'> $player[score]  </td>"; }
  277.  
  278.     if ($monitor_show_time)   { echo "<td width=30% align=center class='gborder'> $player[time]   </td>"; }
  279.  
  280.     echo "</tr>\r\n";
  281.  
  282.   }

И ошибка возникает только в одном месте линия 5:
Use of undefined constant players - assumed 'players'
Use of undefined constant players - assumed 'info'
Если их поставить в ковычки все норм, никаких ошибок, но мониторинг не работает........

Страниц (2): [1] 2 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB