Jump to content
GIGN Forum

Server Query


*jancis38*
 Share

Recommended Posts

  • Replies 93
  • Created
  • Last Reply

Top Posters In This Topic

Ja man būtu jāmin (patiesībā man tas arī ir jādara), tad es minētu, ka nano.lv tev nepiedāvā libbz2 php paplašinājumu.

ini_set("display_errors","On");
error_reporting(E_ALL);

Grūti pateikt... atmiņas limits, laika limits, utt, utt (pēc idejas tam visam vajadzētu būt log'os).

Varbūt phpinfo() parādi?

Edited by X ID
Link to comment
Share on other sites

Man error reportings tiek noteikts ar .htaccess failu. Tajā servera query skripta sākumā iekopēju to php kodu par tiem erroriem + htaccess failā arī ieslēdzu to display_errors on. Mājaslapā man vienā vietā rādija erroru (tam nav nekāda saistība ar servera query skriptu, bet vienkārši pierādījums tam, ka errori tiek padoti.)

phpinfo__.htm

Edited by conrad
Link to comment
Share on other sites

  • 1 month later...

es esmu ticis tik tālu ka pat uzrāda spēlētāju sarakstu, bet atkal pirmajam spēlētājam listā neuzrāda pirmo burtu no viņa nika, vel ka neuzrāda pareizu fragu skaitu.

/// paareejais kods

define('A2S_PLAYER', "\x55");
$response = query(A2S_PLAYER . "\xFF\xFF\xFF\xFF");
if ( getbyte($response) != 0x41 )
  die('nedabujaam challenge');
$challenge = @pack("L", getlong($response));
$response = query(A2S_PLAYER . $challenge);
if ( getbyte($response) != 0x44 )
  die('nedabujaam playeru sarakstu');
$total_players = getbyte($response);
for($i = 1;$i < $total_players; $i++)
{
    getbyte($response);
    $name = getstring($response);
    $kills = getlong($response);
    getlong($response);
    echo $name."<br />\n";
}

Dokumentāciju es daudzreiz pārlasiju un skatijos kur vaina, bet tā arī vainu nevarēju atrast....

Link to comment
Share on other sites

X ID ir drusku nomudījies iekš getstring() funkcijas, reku pareizais variants:

PHP

<?

function getstring(&$raw){

    if(empty(

$raw)) return '';

    

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

    

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

    

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

    return 

$string;

  }  

?>

Link to comment
Share on other sites

Kads varētu parādīt gala iznākumu, jo man nekas neiznāk.Šitādu erroru rāda

Fatal error: Call to undefined function query() in C:\xampp\htdocs\monitors.php on line 21

un 21 līnijā ir šis

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

Edited by dimka62
Link to comment
Share on other sites

tas tāpēc, ka X ID kods ir vispār viens liels gļuks :)

palasi cauri responsi no A2S_INFO requesta: http://developer.valvesoftware.com/wiki/Se...ueries#A2S_INFO

atbildē tiek saņemts:

tips (byte),

versija (byte), <==== šeit tu dabū savu nulli, jo tas netiek nolasīts

servera nosaukums (string)

... (viss pārējais šits)

PHP

<?

$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); // <=== pirms šī trūkst versijas nolasīšana

  

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

  

getstring($response);

...

}

?>

tak nav tik grūti nedaudz arī padomāt ne? tā dokumentācija ir ļoti smuki aprakstīta un tur ir smuki uzskaitīta secība, kā dati tiek iegūti...

Link to comment
Share on other sites

  • 3 months later...

Kāds varētu pateikt, caur kuriem portiem nāk atpakaļ informācija no serveri? Lieta tāda, ka piekonektēties klāt var, bet informāciju atpakaļ nevar saņemt, jo porti bloķēti. Hostings grib zināt, kuri tieši porti ir nepieciešami, jo "tā nav droši" - atstāt vairākus vairākus neizmantotu portus vaļā.

Link to comment
Share on other sites

  • 3 weeks later...

if ( getbyte($response) != 0x41 ) šitā vieta man aiziet kā true līdz ar to izpildas tas die un nekas nejiet, itkā nedabuju chalange, bet ko tas nozīmē? iekš print_r man ir kkāds 68 nevis 0x41, wtf?

Link to comment
Share on other sites

Kādu query tu izpildi, lai dabūtu challenge? Vai tu iepazinies ar dokumentāciju (linku ko iemetu iepriekšējā postā)? Lai dabūtu challenge kodu, tev jānosūta ir A2S_PLAYER komanda, kura challenge vietā satur -1. Atbildē tu saņemsi savu 0x41 un challenge numuru. Ja tu A2S_PLAYER komandu nosūtīsi ar jau iepriekš saņemtu challenge kodu, tad atbildē tu saņemsi 0x44 un playeru sarakstu.

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...