Advertisement
Guest User

serverboard fix

a guest
Dec 15th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. function source_query($address) {
  2. $array = explode(":", $address);
  3.  
  4. $server['status'] = 0;
  5. $server['ip'] = $array[0];
  6. $server['port'] = $array[1];
  7.  
  8. if (!$server['ip'] || !$server['port']) { exit("EMPTY OR INVALID ADDRESS"); }
  9.  
  10. $socket = @fsockopen("udp://{$server['ip']}", $server['port'], $errno, $errstr, 1);
  11.  
  12. if (!$socket) { return $server; }
  13.  
  14. stream_set_timeout($socket, 1);
  15. stream_set_blocking($socket, TRUE);
  16. fwrite($socket, "\xFF\xFF\xFF\xFF\x54Source Engine Query\x00");
  17. $packet = fread($socket, 4096);
  18. @fclose($socket);
  19.  
  20. if (!$packet) { return $server; }
  21.  
  22. $header = substr($packet, 0, 4);
  23. $response_type = substr($packet, 4, 1);
  24. $network_version = ord(substr($packet, 5, 1));
  25.  
  26. if ($response_type != "I") { exit("<span style='color: black;'>NOT A SOURCE SERVER</span>"); }
  27.  
  28. $packet_array = explode("\x00", substr($packet, 6), 5);
  29. $server['name'] = $packet_array[0];
  30. $server['map'] = $packet_array[1];
  31. $server['game'] = $packet_array[2];
  32. $server['description'] = $packet_array[3];
  33. $packet = $packet_array[4];
  34. $app_id = array_pop(unpack("S", substr($packet, 0, 2)));
  35. $server['players'] = ord(substr($packet, 2, 1));
  36. $server['playersmax'] = ord(substr($packet, 3, 1));
  37. $server['bots'] = ord(substr($packet, 4, 1));
  38. $server['status'] = 1;
  39. $server['dedicated'] = substr($packet, 5, 1);
  40. $server['os'] = substr($packet, 6, 1);
  41. $server['password'] = ord(substr($packet, 7, 1));
  42. $server['vac'] = ord(substr($packet, 8, 1));
  43.  
  44. return $server;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement