Spieleserver in ein template integrieren

  • Hallo liebe Community,

    ich moechte auf unserem Template einen Spieleserver anzeigen lassen via Gametricker. Habe alles nach anleitung gemacht.
    Wenn die Seite das erste mal laed wird der Server auch angezeigt. Lade ich die Seite erneut kommt diese Fehlermeldung:

    Warning: file_get_contents(http://www.gametracker.com/server_info/46.228.198.72:19567/) [http://www.php.net/manual/function.file-get-contents.php]: failed to open stream: Connection refused in /home/tlrvbfvl/htdocs/inc/server_query/gametracker.php on line 13

    kann jemand damit etwas anfangen und mir weiterhelfen?

    MFG Dennis

  • Danke erst einmal fuer die Info. Jedoch ist mein englisch leider nicht besonderst deswegehn wuesste ich nicht wie ich das problem denen schildern koennte -.-

    MFG Dennis

  • Wenn ich die php hier poste kannst du dann was damit anfangen ob da eine einstellung ist zu der abfrage?

  • ich glaube nicht, dass es was bringt die php zu posten, denn letztlich isses ja ne eindeutige meldung.. connection refused bedeutet dass die verbindung abgewiesen wurde..

    aber poste mal die php, vielleicht gibts da ja andere hinweise.

  • Dieses Script

    PHP
    <?php
       phpinfo();
    ?>


    auf den Server kopieren und aufrufen. In der Ausgabe nach allow_url_open suchen und gucken, was da steht.

  • <?php

    function server_query_gametracker($ip, $port, $q_port, $request)
    {

    @set_time_limit(2);
    $fp = @fsockopen("udp://".gethostbyname($ip), $port, $errno, $errstr, $server_timeout);

    if (!$fp) { return FALSE; }


    $source = file_get_contents('http://www.gametracker.com/server_info/'.gethostbyname($ip).':'.$port.'/');
    $cleaning = trim($source);
    $cleaning = nl2br($cleaning);
    $cleaning = str_replace("\r\n", "", $cleaning);
    $cleaning = str_replace(" ", "§", $cleaning);
    $cleaning = preg_replace("/\s\s+/", " ", $cleaning);
    $cleaning = preg_replace("/\040\040+/", " ", $cleaning);
    $cleaning = preg_replace("/\h\h+/", " ", $cleaning);
    $cleaning = preg_replace("/[\x09\x20]{2}/", " ", $cleaning);
    $cleaning = str_replace('&nbsp;<img§src="/images/global/ico_bot.gif"§alt="[BOT]"§/>', "", $cleaning);
    // echo $cleaning;
    //$cleaning

    //title="Call§of§Duty§4"/><br§/> </a><br§/>

    //<div§class="item_float_clear"><br§/> </div><br§/> <div§class="scrollable_on_c01"><br§/> 44<br§/> </div><br§/> <div§class="scrollable_on_c02"><br§/> <a§href="http://www.gametracker.com/player/%C3%B5%C3%B3%C3%A5%C3%AC%20%C3%AF%C3%AE%20%C3%AB%C3%A1%C3%B3%21/91.121.54.64:28930/"§target="_blank"§>&otilde;&oacute;&aring;&igrave;§&iuml;&icirc;§&euml;&aacute;&oacute;!</a><br§/> </div><br§/> <div§class="scrollable_on_c03"><br§/> 0<br§/> </div><br§/>
    $regexp_players ='/<td§class=\"c01\"><br§\/> (.*?).<br§\/> <\/td><br§\/> <td§class=\"c02\"><br§\/> <a§href=\"(.*?)\"><br§\/> (.*?)<br§\/> <\/a><br§\/> <br§\/>(.*?)<br§\/> <\/td><br§\/> <td§class=\"c03\"><br§\/> (.*?)<br§\/> <\/td><br§\/> <td§class=\"c04\"><br§\/> (.*?)<br§\/> <\/td><br§\/> <\/tr><br§\/> /si';
    preg_match_all($regexp_players , $cleaning, $players);


    $regexp_map ='/<div§class=\"si_map_header\"§id=\"HTML_curr_map\"><br§\/> (.*?)<br§\/> <\/div><br§\/> <div§class=\"si_map_image\"§id=\"HTML_map_ss_img\"><br§\/> <img§src=\"(.*?)\"§alt=\"\"/si';
    preg_match($regexp_map , $cleaning, $map);


    $regexp_game_icon ='/Game:<\/span><br§\/> (.*?)<br§\/> &nbsp;§<span§class=\"item_color_title\">Browse:<\/span><br§\/> <a§href=\"\/search\/(.*?)\/\">/si';
    preg_match($regexp_game_icon , $cleaning, $game_icon);


    $regexp_servername ='/Name:<\/span><br§\/> <a§href=\"\/server_info\/'.gethostbyname($ip).':'.$port.'\/\"><br§\/> <b>(.*?)<\/b>/si';
    preg_match($regexp_servername , $cleaning, $servername);


    $regexp_plcount ='/Current§Players:<\/span><br§\/> <span§id=\"HTML_num_players\">(.*?)<\/span>§\/§<span§id=\"HTML_max_players\">(.*?)<\/span>/si';
    preg_match($regexp_plcount , $cleaning, $playercount);


    $regexp_status ='/Status:<\/span><br§\/> <span§class=\"(.*?)\"><br§\/> (.*?)<br§\/>/si';
    preg_match($regexp_status , $cleaning, $status);

    $server_name = str_replace("§"," ",$game_icon['1']);
    $server_name_short = str_replace("§"," ",$game_icon['2']);
    $server_link = 'gt://joinGame:game='.$game_icon['2'].'&ip='.gethostbyname($ip).'&port='.$port;
    $server_name_config = array($game_icon['2'] => array($game_icon['1'], $game_icon['2'] ),);


    $map['1'] = preg_replace("/[^A-Za-z0-9 \&\_\-]/", "_", $map['1']);
    $map_low = str_replace(' ','_', strtolower($map['1']));
    $image_map = basePath."/inc/images/maps/gametracker/".$game_icon['2']."/".str_replace("/","_",$map_low).".jpg";

    if(!file_exists($image_map))
    {
    $sourcemap = @file_get_contents($map['2']);
    if ( !is_dir(basePath."/inc/images/maps/gametracker/" ) ) mkdir(basePath."/inc/images/maps/gametracker/",0755);
    if ( !is_dir(basePath."/inc/images/maps/gametracker/".$game_icon['2']."/" ) ) mkdir(basePath."/inc/images/maps/gametracker/".$game_icon['2']."/",0755);
    @file_put_contents(basePath."/inc/images/maps/gametracker/".$game_icon['2']."/".str_replace("/","_",$map_low).".jpg",$sourcemap);
    }

    $gameicon = basePath."/inc/images/gameicons/gametracker/".$game_icon['2'].".gif";
    if(!file_exists($gameicon))
    {
    if ( !is_dir(basePath."/inc/images/gameicons/gametracker/" ) ) mkdir(basePath."/inc/images/gameicons/gametracker/",0755);
    $png = @imagecreatefrompng("http://www.gametracker.com/images/game_icons/".$game_icon['2'].".png");
    @imagegif($png, basePath."/inc/images/gameicons/gametracker/".$game_icon['2'].".gif");
    @imagedestroy($png);

    }

    if ($request == "info")
    {

    unset($data);

    $data['gamemod'] = $game_icon['2'];
    $data['game'] = str_replace("§", " ", $game_icon['1']);
    $data['hostname'] = str_replace("§"," ",html_entity_decode($servername[1]));

    if (!$data['hostname']) { $data['hostname'] = str_replace("§"," ",$servername_onoff[1]); }

    $data['mapname'] = str_replace("/","_",$map['1']);
    $data['players'] = $playercount['1'];
    $data['maxplayers'] = $playercount['2'];
    $data['password'] = $setting['password'];

    return $data;
    }

    if ($request == "players")
    {
    $i = 0;
    while($i < count($players['0']))
    {
    $player[$i]['id'] = $players['1'][$i];
    $player[$i]['name'] = str_replace("§"," ",html_entity_decode($players['3'][$i]));
    $player[$i]['time'] = str_replace("§"," ",$players['6'][$i]);
    $player[$i]['score'] = $players['5'][$i];

    $i++;
    }

    return $player;
    }
    }


    ######## CONFIG ##############################################################################################################
    unset($gt_config);
    $gt_config = server_query_gametracker($get['ip'], $get['port'], $get['qport'], 'info');
    $server_name = str_replace("#"," ",$gt_config['game']);
    $server_name_short = strtoupper($gt_config['gamemod']);
    $server_link = 'gt://joinGame:game={gamemod}&ip={IP}&port={S_PORT}';

    ##############################################################################################################################


    ?>


    in der info fand ich allow_url_open nicht sondern nur allow_url_fopen und das steht auf on

  • Daran wird's nicht liegen, denn sonst würde das Script nicht bis zum file_get_contents kommen. ;) cURL könnte weiterhelfen.

  • Daran wird's nicht liegen, denn sonst würde das Script nicht bis zum file_get_contents kommen. ;) cURL könnte weiterhelfen.

    Was genau meinst du damit?

  • Hi zusammen ich bins wieder.
    Das mit der curl ist für meine Kenntnisse eindeutig zu hoch.
    Werde das Problem erst einmal bestehen lassen, da es wohl keine Möglichkeit gibt das mit meinem Wissensstand zu lösen.

    Ich danke euch trotzdem für eure Hilfe!

    Gruss Dennis