Guest User

get_tw_server_0_6

a guest
Jan 22nd, 2014
617
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.     /******************************************************************\
  3.     |* Copyright (c) by Starlex.de
  4.     |*
  5.     |* Visit:
  6.     |*      http://teeworlds.com
  7.     |*      http://teeworlds.de
  8.     |*      http://teeworlds-community.de
  9.     |*
  10.     |* License:
  11.     |*      http://creativecommons.org/licenses/by-nc-sa/3.0/deed.de
  12.     |*
  13.     \******************************************************************/
  14.  
  15. function get_tw_server_0_6($server) {
  16.    
  17.     $socket = stream_socket_client('udp://'.$server , $errno, $errstr, 1);
  18.     fwrite($socket, "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x67\x69\x65\x33\x05");
  19.     $response = fread($socket, 2048);
  20.    
  21.     //  echo str_replace("\x00"," <br/> ",$response);
  22.    
  23.     if ($response){
  24.         $info = explode("\x00",$response);
  25.        
  26.         $players = array();
  27.         for ($i = 0; $i <= $info[8]*5-5 ; $i += 5) {
  28.            
  29.             $teams = Array("Zuschauer","Spieler");
  30.             $team = $teams[$info[$i+14]];
  31.            
  32.             $flags = Array();
  33.            
  34.             $flags[] = Array("default", "-1");
  35.             $flags[] = Array("XEN", "901");
  36.             $flags[] = Array("XNI", "902");
  37.             $flags[] = Array("XSC", "903");
  38.             $flags[] = Array("XWA", "904");
  39.             $flags[] = Array("SS", "737");
  40.             $flags[] = Array("AF", "4");
  41.             $flags[] = Array("AX", "248");
  42.             $flags[] = Array("AL", "8");
  43.             $flags[] = Array("DZ", "12");
  44.             $flags[] = Array("AS", "16");
  45.             $flags[] = Array("AD", "20");
  46.             $flags[] = Array("AO", "24");
  47.             $flags[] = Array("AI", "660");
  48.             $flags[] = Array("AG", "28");
  49.             $flags[] = Array("AR", "32");
  50.             $flags[] = Array("AM", "51");
  51.             $flags[] = Array("AW", "533");
  52.             $flags[] = Array("AU", "36");
  53.             $flags[] = Array("AT", "40");
  54.             $flags[] = Array("AZ", "31");
  55.             $flags[] = Array("BS", "44");
  56.             $flags[] = Array("BH", "48");
  57.             $flags[] = Array("BD", "50");
  58.             $flags[] = Array("BB", "52");
  59.             $flags[] = Array("BY", "112");
  60.             $flags[] = Array("BE", "56");
  61.             $flags[] = Array("BZ", "84");
  62.             $flags[] = Array("BJ", "204");
  63.             $flags[] = Array("BM", "60");
  64.             $flags[] = Array("BT", "64");
  65.             $flags[] = Array("BO", "68");
  66.             $flags[] = Array("BA", "70");
  67.             $flags[] = Array("BW", "72");
  68.             $flags[] = Array("BR", "76");
  69.             $flags[] = Array("IO", "86");
  70.             $flags[] = Array("BN", "96");
  71.             $flags[] = Array("BG", "100");
  72.             $flags[] = Array("BF", "854");
  73.             $flags[] = Array("BI", "108");
  74.             $flags[] = Array("KH", "116");
  75.             $flags[] = Array("CM", "120");
  76.             $flags[] = Array("CA", "124");
  77.             $flags[] = Array("CV", "132");
  78.             $flags[] = Array("KY", "136");
  79.             $flags[] = Array("CF", "140");
  80.             $flags[] = Array("TD", "148");
  81.             $flags[] = Array("CL", "152");
  82.             $flags[] = Array("CN", "156");
  83.             $flags[] = Array("CX", "162");
  84.             $flags[] = Array("CC", "166");
  85.             $flags[] = Array("CO", "170");
  86.             $flags[] = Array("KM", "174");
  87.             $flags[] = Array("CG", "178");
  88.             $flags[] = Array("CD", "180");
  89.             $flags[] = Array("CK", "184");
  90.             $flags[] = Array("CR", "188");
  91.             $flags[] = Array("CI", "384");
  92.             $flags[] = Array("HR", "191");
  93.             $flags[] = Array("CU", "192");
  94.             $flags[] = Array("CW", "531");
  95.             $flags[] = Array("CY", "196");
  96.             $flags[] = Array("CZ", "203");
  97.             $flags[] = Array("DK", "208");
  98.             $flags[] = Array("DJ", "262");
  99.             $flags[] = Array("DM", "212");
  100.             $flags[] = Array("DO", "214");
  101.             $flags[] = Array("EC", "218");
  102.             $flags[] = Array("EG", "818");
  103.             $flags[] = Array("SV", "222");
  104.             $flags[] = Array("GQ", "226");
  105.             $flags[] = Array("ER", "232");
  106.             $flags[] = Array("EE", "233");
  107.             $flags[] = Array("ET", "231");
  108.             $flags[] = Array("FK", "238");
  109.             $flags[] = Array("FO", "234");
  110.             $flags[] = Array("FJ", "242");
  111.             $flags[] = Array("FI", "246");
  112.             $flags[] = Array("FR", "250");
  113.             $flags[] = Array("GF", "254");
  114.             $flags[] = Array("PF", "258");
  115.             $flags[] = Array("TF", "260");
  116.             $flags[] = Array("GA", "266");
  117.             $flags[] = Array("GM", "270");
  118.             $flags[] = Array("GE", "268");
  119.             $flags[] = Array("DE", "276");
  120.             $flags[] = Array("GH", "288");
  121.             $flags[] = Array("GI", "292");
  122.             $flags[] = Array("GR", "300");
  123.             $flags[] = Array("GL", "304");
  124.             $flags[] = Array("GD", "308");
  125.             $flags[] = Array("GP", "312");
  126.             $flags[] = Array("GU", "316");
  127.             $flags[] = Array("GT", "320");
  128.             $flags[] = Array("GG", "831");
  129.             $flags[] = Array("GN", "324");
  130.             $flags[] = Array("GW", "624");
  131.             $flags[] = Array("GY", "328");
  132.             $flags[] = Array("HT", "332");
  133.             $flags[] = Array("VA", "336");
  134.             $flags[] = Array("HN", "340");
  135.             $flags[] = Array("HK", "344");
  136.             $flags[] = Array("HU", "348");
  137.             $flags[] = Array("IS", "352");
  138.             $flags[] = Array("IN", "356");
  139.             $flags[] = Array("ID", "360");
  140.             $flags[] = Array("IR", "364");
  141.             $flags[] = Array("IQ", "368");
  142.             $flags[] = Array("IE", "372");
  143.             $flags[] = Array("IM", "833");
  144.             $flags[] = Array("IL", "376");
  145.             $flags[] = Array("IT", "380");
  146.             $flags[] = Array("JM", "388");
  147.             $flags[] = Array("JP", "392");
  148.             $flags[] = Array("JE", "832");
  149.             $flags[] = Array("JO", "400");
  150.             $flags[] = Array("KZ", "398");
  151.             $flags[] = Array("KE", "404");
  152.             $flags[] = Array("KI", "296");
  153.             $flags[] = Array("KP", "408");
  154.             $flags[] = Array("KR", "410");
  155.             $flags[] = Array("KW", "414");
  156.             $flags[] = Array("KG", "417");
  157.             $flags[] = Array("LA", "418");
  158.             $flags[] = Array("LV", "428");
  159.             $flags[] = Array("LB", "422");
  160.             $flags[] = Array("LS", "426");
  161.             $flags[] = Array("LR", "430");
  162.             $flags[] = Array("LY", "434");
  163.             $flags[] = Array("LI", "438");
  164.             $flags[] = Array("LT", "440");
  165.             $flags[] = Array("LU", "442");
  166.             $flags[] = Array("MO", "446");
  167.             $flags[] = Array("MK", "807");
  168.             $flags[] = Array("MG", "450");
  169.             $flags[] = Array("MW", "454");
  170.             $flags[] = Array("MY", "458");
  171.             $flags[] = Array("MV", "462");
  172.             $flags[] = Array("ML", "466");
  173.             $flags[] = Array("MT", "470");
  174.             $flags[] = Array("MH", "584");
  175.             $flags[] = Array("MQ", "474");
  176.             $flags[] = Array("MR", "478");
  177.             $flags[] = Array("MU", "480");
  178.             $flags[] = Array("MX", "484");
  179.             $flags[] = Array("FM", "583");
  180.             $flags[] = Array("MD", "498");
  181.             $flags[] = Array("MC", "492");
  182.             $flags[] = Array("MN", "496");
  183.             $flags[] = Array("ME", "499");
  184.             $flags[] = Array("MS", "500");
  185.             $flags[] = Array("MA", "504");
  186.             $flags[] = Array("MZ", "508");
  187.             $flags[] = Array("MM", "104");
  188.             $flags[] = Array("NA", "516");
  189.             $flags[] = Array("NR", "520");
  190.             $flags[] = Array("NP", "524");
  191.             $flags[] = Array("NL", "528");
  192.             $flags[] = Array("NC", "540");
  193.             $flags[] = Array("NZ", "554");
  194.             $flags[] = Array("NI", "558");
  195.             $flags[] = Array("NE", "562");
  196.             $flags[] = Array("NG", "566");
  197.             $flags[] = Array("NU", "570");
  198.             $flags[] = Array("NF", "574");
  199.             $flags[] = Array("MP", "580");
  200.             $flags[] = Array("NO", "578");
  201.             $flags[] = Array("OM", "512");
  202.             $flags[] = Array("PK", "586");
  203.             $flags[] = Array("PW", "585");
  204.             $flags[] = Array("PA", "591");
  205.             $flags[] = Array("PG", "598");
  206.             $flags[] = Array("PY", "600");
  207.             $flags[] = Array("PE", "604");
  208.             $flags[] = Array("PH", "608");
  209.             $flags[] = Array("PN", "612");
  210.             $flags[] = Array("PL", "616");
  211.             $flags[] = Array("PT", "620");
  212.             $flags[] = Array("PR", "630");
  213.             $flags[] = Array("QA", "634");
  214.             $flags[] = Array("RE", "638");
  215.             $flags[] = Array("RO", "642");
  216.             $flags[] = Array("RU", "643");
  217.             $flags[] = Array("RW", "646");
  218.             $flags[] = Array("BL", "652");
  219.             $flags[] = Array("SH", "654");
  220.             $flags[] = Array("KN", "659");
  221.             $flags[] = Array("LC", "662");
  222.             $flags[] = Array("MF", "663");
  223.             $flags[] = Array("PM", "666");
  224.             $flags[] = Array("VC", "670");
  225.             $flags[] = Array("WS", "882");
  226.             $flags[] = Array("SM", "674");
  227.             $flags[] = Array("ST", "678");
  228.             $flags[] = Array("SA", "682");
  229.             $flags[] = Array("SN", "686");
  230.             $flags[] = Array("RS", "688");
  231.             $flags[] = Array("SC", "690");
  232.             $flags[] = Array("SL", "694");
  233.             $flags[] = Array("SG", "702");
  234.             $flags[] = Array("SX", "534");
  235.             $flags[] = Array("SK", "703");
  236.             $flags[] = Array("SI", "705");
  237.             $flags[] = Array("SB", "90");
  238.             $flags[] = Array("SO", "706");
  239.             $flags[] = Array("ZA", "710");
  240.             $flags[] = Array("GS", "239");
  241.             $flags[] = Array("ES", "724");
  242.             $flags[] = Array("LK", "144");
  243.             $flags[] = Array("SD", "736");
  244.             $flags[] = Array("SR", "740");
  245.             $flags[] = Array("SZ", "748");
  246.             $flags[] = Array("SE", "752");
  247.             $flags[] = Array("CH", "756");
  248.             $flags[] = Array("SY", "760");
  249.             $flags[] = Array("TW", "158");
  250.             $flags[] = Array("TJ", "762");
  251.             $flags[] = Array("TZ", "834");
  252.             $flags[] = Array("TH", "764");
  253.             $flags[] = Array("TL", "626");
  254.             $flags[] = Array("TG", "768");
  255.             $flags[] = Array("TK", "772");
  256.             $flags[] = Array("TO", "776");
  257.             $flags[] = Array("TT", "780");
  258.             $flags[] = Array("TN", "788");
  259.             $flags[] = Array("TR", "792");
  260.             $flags[] = Array("TM", "795");
  261.             $flags[] = Array("TC", "796");
  262.             $flags[] = Array("TV", "798");
  263.             $flags[] = Array("UG", "800");
  264.             $flags[] = Array("UA", "804");
  265.             $flags[] = Array("AE", "784");
  266.             $flags[] = Array("GB", "826");
  267.             $flags[] = Array("US", "840");
  268.             $flags[] = Array("UY", "858");
  269.             $flags[] = Array("UZ", "860");
  270.             $flags[] = Array("VU", "548");
  271.             $flags[] = Array("VE", "862");
  272.             $flags[] = Array("VN", "704");
  273.             $flags[] = Array("VG", "92");
  274.             $flags[] = Array("VI", "850");
  275.             $flags[] = Array("WF", "876");
  276.             $flags[] = Array("EH", "732");
  277.             $flags[] = Array("YE", "887");
  278.             $flags[] = Array("ZM", "894");
  279.             $flags[] = Array("ZW", "716");
  280.  
  281.  
  282.             $flag = "";
  283.            
  284.             foreach ($flags as $flag_tmp)
  285.             {
  286.                 if($flag_tmp[1] == $info[$i+12])
  287.                 {
  288.                     $flag = $flag_tmp[0];
  289.                 }
  290.             }
  291.            
  292.  
  293.             $players[] = array(
  294.                         "name" => htmlentities($info[$i+10], ENT_QUOTES, "UTF-8"),
  295.                         "clan" => htmlentities($info[$i+11], ENT_QUOTES, "UTF-8"),
  296.                         "flag" => $flag,
  297.                         "score" => $info[$i+13],
  298.                         "team" => $team);
  299.         }
  300.        
  301.         if($info[9] == $info[7])
  302.         {
  303.             $specslots = $info[9];
  304.         }else{
  305.             $specslots = $info[9] - $info[7];
  306.         }
  307.         $tmp = array(
  308.         "name" => $info[2],
  309.         "map" => $info[3],
  310.         "type" => $info[4],
  311.         "flags" => $info[5],
  312.         "player_count_ingame" => $info[6],
  313.         "max_players_ingame" => $info[7],
  314.         "player_count_spectator" => $info[8] - $info[6],
  315.         "max_players_spectator" => $specslots,
  316.         "player_count_all" => $info[8],
  317.         "max_players_all" => $info[9],
  318.         "players" => $players);
  319.        
  320.         return $tmp;
  321.        
  322.     } else {
  323.         return FALSE;
  324.     }
  325. }
  326. ?>
RAW Paste Data