gameq_feed.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. require_once __DIR__ . '/Autoloader.php';
  3. //------------------------------------------------------------------------------------------------------------+
  4. $type = isset($_GET['game_type'])? $_GET['game_type'] : "";
  5. $ip = isset($_GET['ip']) ? $_GET['ip'] : "";
  6. $c_port = isset($_GET['c_port']) ? intval($_GET['c_port']) : 0;
  7. $q_port = isset($_GET['q_port']) ? intval($_GET['q_port']) : 0;
  8. $s_port = isset($_GET['s_port']) ? intval($_GET['s_port']) : 0;
  9. //------------------------------------------------------------------------------------------------------------+
  10. // VALIDATE REQUEST
  11. if (!$type || !$ip || !$c_port || !$q_port)
  12. {
  13. echo "FAILURE"; return;
  14. }
  15. if ($q_port > 99999 || $q_port < 1024)
  16. {
  17. echo "FAILURE"; return;
  18. }
  19. if (preg_match("/[^0-9a-z\.\-\[\]\:]/i", $ip))
  20. {
  21. echo "FAILURE"; return;
  22. }
  23. /* $lgsl_protocol_list = lgsl_protocol_list();
  24. if (!isset($lgsl_protocol_list[$type]))
  25. {
  26. echo "FAILURE"; return;
  27. } */
  28. //------------------------------------------------------------------------------------------------------------+
  29. // FILTER HOSTNAME AND IP FORMATS THAT PHP ACCEPTS BUT ARE NOT WANTED
  30. if (preg_match("/(\[[0-9a-z\:]+\])/iU", $ip, $match)) { $ip = $match[1]; }
  31. elseif (preg_match("/([0-9a-z\.\-]+)/i", $ip, $match)) { $ip = $match[1]; }
  32. //------------------------------------------------------------------------------------------------------------+
  33. // QUERY SERVER
  34. $gq = new \GameQ\GameQ();
  35. $server = array(
  36. 'id' => 'server',
  37. 'type' => $type,
  38. 'host' => $ip . ":" . $q_port,
  39. );
  40. $gq->addServer($server);
  41. $gq->setOption('timeout', 1);
  42. $gq->setOption('debug', FALSE);
  43. $gq->addFilter('normalise');
  44. $results = $gq->process();
  45. //------------------------------------------------------------------------------------------------------------+
  46. // SERIALIZED OUTPUT
  47. echo "_SGAMEQF_".serialize($results['server'])."_SGAMEQF_";
  48. return;