Advertisement
Guest User

Untitled

a guest
Mar 30th, 2015
413
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.14 KB | None | 0 0
  1. Query for vcmp
  2.  
  3. <html>
  4. <head>
  5. <title>VCMP Server Info</title>
  6. <style type="text/css">
  7. body { font-family: verdana; font-size: 11px; }
  8. td { font-family: verdana; font-size: 11px; }
  9. </style>
  10. </head>
  11. <body bgcolor="#1B304B" text="#EEEEEE">
  12. <br><center><b><font color="#ffffff">VCMP Server Info Script</font></b></center><br><br>
  13. <table width="350" bgcolor="#000000" cellpadding="4" cellspacing="1" align="center">
  14. <?php
  15. $ip = '<YOUR IP>';
  16. $port = '<PORT (LISTEN PORT NOT RCON)>';
  17.  
  18. $fp = fsockopen('udp://' . $ip, $port, $errno, $errstr);
  19. if (!$fp)
  20. {
  21. echo "<tr><td bgcolor=\"#2B5486\">Socket Error: $errno - $errstr</td></tr>\n";
  22. }
  23. else
  24. {
  25. $packet = 'VCMP';
  26. $packet .= chr(strtok($ip, '.'));
  27. $packet .= chr(strtok('.'));
  28. $packet .= chr(strtok('.'));
  29. $packet .= chr(strtok('.'));
  30. $packet .= chr($port & 0xFF);
  31. $packet .= chr($port >> 8 & 0xFF);
  32.  
  33. fwrite($fp, $packet.'i');
  34. fread($fp, 11);
  35. $is_passworded = ord(fread($fp, 1));
  36. $plr_count = ord(fread($fp, 2));
  37. $max_plrs = ord(fread($fp, 2));
  38. $strlen = ord(fread($fp, 4));
  39. $hostname = fread($fp, $strlen);
  40. $strlen = ord(fread($fp, 4));
  41. $gamemode = fread($fp, $strlen);
  42. $strlen = ord(fread($fp, 4));
  43. $mapname = fread($fp, $strlen);
  44.  
  45. echo ' <tr><td bgcolor="#2B5486" colspan="2" align="center"><b>' . $hostname . '</b></td></tr>'."\n";
  46. echo ' <tr><td bgcolor="#2B5486" width="100">Players: </td><td bgcolor="#2B5486" width="250">' . $plr_count . ' / ' . $max_plrs . '</td></tr>'."\n";
  47. echo ' <tr><td bgcolor="#2B5486">GameMode: </td><td bgcolor="#2B5486">' . $gamemode . '</td></tr>'."\n";
  48. echo ' <tr><td bgcolor="#2B5486">MapName: </td><td bgcolor="#2B5486">' . $mapname . '</td></tr>'."\n";
  49. if ($is_passworded)
  50. {
  51. echo ' <tr><td bgcolor="#2B5486">Passworded: </td><td bgcolor="#2B5486">Yes</td></tr>'."\n";
  52. } else {
  53. echo ' <tr><td bgcolor="#2B5486">Passworded: </td><td bgcolor="#2B5486">No</td></tr>'."\n";
  54. }
  55.  
  56. fwrite($fp, $packet.'c');
  57. fread($fp, 11);
  58. $plr_count = ord(fread($fp, 2));
  59. if ($plr_count > 0)
  60. {
  61. echo ' </table><br>'."\n";
  62. echo ' <table width="350" bgcolor="#000000" cellpadding="4" cellspacing="1" align="center">'."\n";
  63. echo ' <tr><td bgcolor="#2B5486" colspan="2" align="center"><b>Players:</b></td></tr>'."\n";
  64. echo ' <tr><td bgcolor="#2B5486" align="center" width="250"><b>Player</b></td><td bgcolor="#2B5486" align="center" width="100"><b>Score</b></td></tr>'."\n";
  65. for ($i=0; $i<$plr_count; $i++)
  66. {
  67. $strlen = ord(fread($fp, 1));
  68. $plrname = fread($fp, $strlen);
  69. $score = samp_getLong(fread($fp, 4));
  70.  
  71. echo ' <tr><td bgcolor="#2B5486">' . $plrname . '</td><td bgcolor="#2B5486">' .
  72. $score . '</td></tr>'."\n";
  73. }
  74. }
  75. fclose($fp);
  76. }
  77. ?>
  78. </table><br>
  79. <center><small>? 2006 SA:MP Team. All rights reserved.</small></center>
  80. </body>
  81. </html>
  82.  
  83. <?php
  84.  
  85. function samp_getLong($dat) {
  86. $num=0;
  87. if ((ord(substr($dat,3,1)) & 128) > 0) {
  88. for ($i=0; $i<strlen($dat); $i++) {
  89. $num-=((255-ord(substr($dat,$i,1))) << 8*$i);
  90. }
  91. $num--;
  92. } else {
  93. for ($i=0; $i<strlen($dat); $i++) {
  94. $num+=(ord(substr($dat,$i,1)) << 8*$i);
  95. }
  96. }
  97. return $num;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement