Guest User

get_tw_master_old-example

a guest
Jan 22nd, 2014
86
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