Guest User

Untitled

a guest
Jun 21st, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.46 KB | None | 0 0
  1. <?php
  2.  
  3. $user->add_lang('mods/tsviewer');
  4.  
  5. $data = tsv("217.26.212.10",51234,8767);
  6.  
  7. $playerlist = "";
  8. for($i = 1; $i <= count($data['playerlist']); $i++)
  9. {
  10. $playerlist .= "<b>".$data['playerlist'][$i]['playername']."</b>,&nbsp;";
  11. }
  12.  
  13. $firstw = "i";
  14. $secondw = "i";
  15. $number = count($data['playerlist']);
  16. if($number == 1)
  17. {
  18. $firstw = "e";
  19. $secondw = "o";
  20. }
  21.  
  22. $template->assign_vars(array(
  23.  
  24. 'TSV_USER_TOTAL' => sprintf($user->lang['TSV_USER_TOTAL'], $number,$firstw),
  25. 'TSV_CONNECTED' => sprintf($user->lang['TSV_CONNECTED'], $secondw),
  26. 'TSV_PLAYER_LIST' => sprintf($user->lang['TSV_PLAYER_LIST'], $playerlist),
  27.  
  28. ));
  29.  
  30. // constructor queries the teamspeak server
  31. function tsv($address,$queport,$udpport)
  32. {
  33. $result = array();
  34. if(!function_exists('fsockopen'))
  35. {
  36. $result["errorno"] = 3;
  37. }
  38. else if(!tsv_connect($socket,$address,$queport,0.3))
  39. {
  40. $result["errorno"] = 1;
  41. }
  42. else if(!tsv_request_server($socket,$udpport))
  43. {
  44. $result["errorno"] = 2;
  45. tsv_disconnect($socket);
  46. }
  47. else
  48. {
  49. $result["errorno"] = 0;
  50. $result["serverinfo"] = tsv_server_info($socket);
  51. $result["playerlist"] = tsv_player_list($socket);
  52. tsv_disconnect($socket);
  53. }
  54. return $result;
  55. }
  56.  
  57. //tsv_connects to the teamspeak server
  58. function tsv_connect(&$socket,$host,$port,$timeout)
  59. {
  60. @$socket = fsockopen($host, $port, $errno, $errstr, $timeout);
  61. if($socket and (tsv_sanitize(fgets($socket,4096)) == "[TS]"))
  62. return true;
  63. else
  64. return false;
  65. }
  66.  
  67. // distsv_connect from the teamspeak server
  68. function tsv_disconnect($socket)
  69. {
  70. fputs($socket, "quit\n");
  71. fclose($socket);
  72. }
  73.  
  74. // request the server data
  75. function tsv_server_info($socket)
  76. {
  77. fputs($socket, "si\n");
  78. $result = array();
  79. do
  80. {
  81. $buffer = tsv_sanitize(fgets($socket,4096));
  82. if (($buffer != "OK") && (strtoupper(substr($buffer,0,5)) != "ERROR"))
  83. {
  84. $pos = strpos($buffer,'=');
  85. if ($pos !== false)
  86. {
  87. $result[substr($buffer,0,$pos)] = substr($buffer,$pos+1);
  88. }
  89. }
  90. }
  91. while (($buffer != "OK") && (strtoupper(substr($buffer,0,5)) != "ERROR") && (!feof($socket)));
  92. return $result;
  93. }
  94.  
  95. // request the player list and their data
  96. function tsv_player_list($socket)
  97. {
  98. fputs($socket,"pl\n");
  99. $buffer = tsv_sanitize(fgets($socket,4096));
  100. $result = array();
  101. if(strtoupper(substr($buffer,0,5)) == "ERROR")
  102. return $result;
  103. do
  104. {
  105. $buffer = tsv_sanitize(fgets($socket,4096));
  106. if(($buffer != "OK") && (strtoupper(substr($buffer,0,5)) != "ERROR"))
  107. {
  108. $playerid = tsv_remove_tabs($buffer);
  109. $result[$playerid] = array(
  110. "playerid" => $playerid,
  111. "channelid" => tsv_remove_tabs($buffer),
  112. "receivedpackets" => tsv_remove_tabs($buffer),
  113. "receivedbytes" => tsv_remove_tabs($buffer),
  114. "sentpackets" => tsv_remove_tabs($buffer),
  115. "sentbytes" => tsv_remove_tabs($buffer),
  116. "paketlost" => tsv_remove_tabs($buffer)/100,
  117. "pingtime" => tsv_remove_tabs($buffer),
  118. "totaltime" => tsv_remove_tabs($buffer),
  119. "idletime" => tsv_remove_tabs($buffer),
  120. "privileg" => tsv_remove_tabs($buffer),
  121. "userstatus" => tsv_remove_tabs($buffer),
  122. "attribute" => tsv_remove_tabs($buffer),
  123. "ip" => tsv_remove_tabs($buffer),
  124. "playername" => tsv_remove_quotes(tsv_remove_tabs($buffer)),
  125. "loginname" => tsv_remove_quotes(tsv_remove_tabs($buffer))
  126. );
  127. }
  128. }
  129. while(($buffer != "OK") && (strtoupper(substr($buffer,0,5)) != "ERROR") && (!feof($socket)));
  130. return $result;
  131. }
  132.  
  133. // request the server behind the udpport
  134. function tsv_request_server($socket, $port)
  135. {
  136. fputs($socket,"sel ".$port."\n");
  137. if(tsv_sanitize(fgets($socket,4096)) == "OK")
  138. return true;
  139. else
  140. return false;
  141. }
  142.  
  143. // remove the endstring characters
  144. function tsv_sanitize($string)
  145. {
  146. $lenght = strlen($string);
  147. while(((substr($string,$lenght-1,1) == "\r")) || ((substr($string,$lenght-1,1) == "\n")))
  148. $lenght--;
  149. return substr($string, 0, $lenght);
  150. }
  151.  
  152. // returns a string before a tab and truncates the string
  153. function tsv_remove_tabs(&$string)
  154. {
  155. $pos = strpos($string, "\t");
  156. if(is_integer($pos))
  157. {
  158. $result = substr($string,0,$pos);
  159. $string = substr($string,$pos+1);
  160. }
  161. else
  162. {
  163. $result = $string;
  164. $string = "";
  165. }
  166. return $result;
  167. }
  168.  
  169. // remove the quotes from a string
  170. function tsv_remove_quotes($string)
  171. {
  172. if(strpos($string,'"') == 0)
  173. $string = substr($string,1,strlen($string)-1);
  174. if(strrpos($string,'"') == strlen($string)-1)
  175. $string = substr($string,0,strlen($string)-1);
  176. return $string;
  177. }
  178.  
  179. ?>
Add Comment
Please, Sign In to add comment