Jump to content
GIGN Forum

Server Query


*jancis38*
 Share

Recommended Posts

PHP

<?php

$ip 

"cs.gign.lv";

$ports "27015";

$socket fsockopen("udp://".$ip$ports);

$cmd "\xFF\xFF\xFF\xFF\x54Source Engine Query\x00";

$lenght strlen($cmd);

fwrite($socket$cmd$lenght);

$response fread($socket1);

if (empty(

$response))

{

    echo 

"<center>$ip:$ports: <b>-</b></center>\n";

} else

{

    echo 

"<center>$ip:$ports: <b>+</b></center>\n";

}

?>

Viss kārtībā, tiek izvadīts +.

Bet ko darīt tālāk, kā pieņemsim izvadīt servera nosaukumu, mapes nosaukumu, spēlētāju skaitu/max. spēlētāju skaitu?

Link to comment
Share on other sites

  • Replies 93
  • Created
  • Last Reply

Top Posters In This Topic

Izmantojot worm'a funckijas būtu ~ tā (+ getstring() ):

PHP

<?

    header

("Content-Type: text/plain; charset=utf-8");

    

// worm'a tūļi

    

function getstring(&$raw){

        if(empty(

$raw)) return '';

        

getbyte($raw);

        

$e=strpos($raw,0x00);

        

$string=substr($raw,0,$e);

        

$raw=substr($raw,$e);

        return 

$string;

    }

  

    

$ip="cs.gign.lv";

    

$port=27015;

    if(!

$sock=@fsockopen("udp://".$ip,$port,$errno,$errstr,1)){

        die(

'[ERROR] '.$errno.': '.$errstr);

    }

    

$data=(object)array();

    

$response=query("TSource Engine Query\ 0"); // te vēl to sūdu rauj nost, starp \ un 0 nav jābūt atstarpei

    

$type=getbyte($response);

    if(

$type==0x49){

        

$data->name=getstring($response);

        

$data->map=getstring($response);

        

getstring($response);

        

getstring($response);

        

getshort($response);

        

getbyte($response);

        

$data->players_now=getbyte($response);

        

$data->players_max=getbyte($response);

    }elseif(

$type==0x6D){

        

getstring($response);

        

$data->name=getstring($response);

        

$data->map=getstring($response);

        

getstring($response);

        

getstring($response);

        

getbyte($response);

        

$data->players_now=getbyte($response);

        

$data->players_max=getbyte($response);

    }else{

        die(

'WTF?!');

    }

    echo 

"

    Servera nosaukums: $data->name

    Karte: $data->map

    Spēlētāji: $data->players_now/$data->players_max

    "

;

?>

EDIT: Gļukains highlight's.

Edited by X ID
Link to comment
Share on other sites

O paldies.

piemēram ja gribu atgriezt players vajag?

PHP

define('A2S_PLAYER','0x44);

$respone = query(A2S_PLAYER);

Kkā ta?

P.s.

http://waplet.oo.lv/server.php

Kpc diez html nerukā?

Tā sataisīju html, ka iet.

Talāk kā varētu izdarīt ta ka,ja

PHP

if (ir mapes bilde){

echo "bilde" ;

}

else{

echo "tuksha bilde";

}

Edited by w4p1337
Link to comment
Share on other sites

PHP

$mapes_bilde = "cels/uz/mapes/bildeem/$data->map.jpg";

if (!file_exists($mapes_bilde))

{

    $mapes_bilde = "ja/bildes/nav/tad/raadiis/shito/nav_bilde_y0!.jpg";

}

EDIT:

set_time_limit() funkciju.

Uzstādīju uz 1, bet vienalga lapu lāde 30 sekundes, ko darīt?

Kad parādās kļūda, rāda: Fatal error: Maximum execution time of 1 second exceeded...

Tātad viss pareizi.

Un kā tikt vaļā no tā die(), vismaz uzrādīt kādu echo tā vietā.

Edited by *jancis38*
Link to comment
Share on other sites

tad šī sadaļa nav domāta tev... takšto PISSSS NAHUJ

p.s.

es necienu tādus idiotus kā tu, kas nevis nemāk, bet negrib mācīties un uzskata mūs par gana naiviem, cerībā, ka nekas nebūs jādara un tev viss tiks pasniegts uz paplātes

Link to comment
Share on other sites

worm kā būs ar tiem playeriem?

define('A2S_PLAYER','0x44);
$respone = query(A2S_PLAYER);

n0r3k : būs tā, ka Tu dabūsi banu, jo es saskaitīju 10 memberus no Tavas IP! 3 no tiem ir waplet, wap1337 un w4p1337. Tu gribi rakstīt to viena acc vai arī nerakstīt vispār, ko ?

Edited by w4p1337
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share


×
×
  • Create New...