Advertisement
soulshaker

VCMP Server Information

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