SHARE
TWEET

get_tw_master_old-example

a guest Jan 22nd, 2014 41 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. /******************************************************************\
  4. |* Copyright (c) by Starlex.de
  5. |*
  6. |* Visit:
  7. |*              http://teeworlds.com
  8. |*              http://teeworlds.de
  9. |*              http://teeworlds-community.de
  10. |*
  11. |* License:
  12. |*              http://creativecommons.org/licenses/by-nc-sa/3.0/deed.de
  13. |*
  14. \******************************************************************/
  15.  
  16. $masters = Array(
  17.         "master1.teeworlds.com:8300",
  18.         "master2.teeworlds.com:8300",
  19.         "master3.teeworlds.com:8300",
  20.         "master4.teeworlds.com:8300");
  21.  
  22. foreach ($masters as $ms) {
  23.         if($servers = get_tw_master($ms))
  24.         {
  25.                 foreach ($servers as $server)
  26.                 {
  27.                         echo $server."<br>";
  28.                 }
  29.         }
  30. }
  31.  
  32.  
  33. function get_tw_master($server) {
  34.  
  35.         if ($socket = stream_socket_client('udp://'.$server , $errno, $errstr, 1))
  36.         {
  37.                 stream_set_timeout($socket, 1);
  38.                 fwrite($socket, "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffreqt");
  39.                 $servers = Array();
  40.                 $response = fread($socket, 2048);
  41.                 if ($response)
  42.                 {
  43.                         while (strlen($response) >= 1)
  44.                         {
  45.                                 $response = substr($response, 14);
  46.                                 for ($i = 0; $i <= (strlen($response)-1) ; $i += 6) {
  47.                                         $server =       Array(
  48.                                                         "ip1" => ord($response{$i}),
  49.                                                         "ip2" => ord($response{$i+1}),
  50.                                                         "ip3" => ord($response{$i+2}),
  51.                                                         "ip4" => ord($response{$i+3}),
  52.                                                         "port" => strToint($response{$i+5}.$response{$i+4}));
  53.                                                        
  54.                                         $serveraddresse = $server["ip1"].".".$server["ip2"].".".$server["ip3"].".".$server["ip4"].":".$server["port"];
  55.                                         $servers[] = $serveraddresse;
  56.                                 }
  57.                                 $response = fread($socket, 2048);
  58.                         }
  59.                         return $servers;
  60.                 } else {
  61.                         return FALSE;
  62.                 }
  63.         } else {
  64.                 return FALSE;
  65.         }
  66. }
  67.  
  68. function strToint($string)
  69. {
  70.     $hex = "";
  71.     for ($i=0; $i < strlen($string); $i++)
  72.     {
  73.         $hex .= dechex(ord($string[$i]));
  74.     }
  75.         $int = hexdec($hex);
  76.     return $int;
  77. }
  78. ?>
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top