Pereiti prie turinio

Puslapio nuskaitymas


Rekomenduojami pranešimai

Tai va, skaityt failus interneto, t.y gaut jų kodą aš moku, tačiau susidūriau su tokia kėblia situacija. noriu nuskaityti haxball.com visus žaidimų kambarius, bet nuskaitant haxball.com man nerodo kambarių informacijos, bet rodo tą langą, kuriame reikia įvesti žaidimo niką. Tai kaip man prieiti prie to kito lango? Ar reikia kaip nors prieš gaunant info prisijungti prie puslapio ir automatiškai užpildyti?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Gali būti, o tai kaip tada skaityti tokį dalyką?

 

Atsidarius kambarių sąrašą pastebėjau, kad paspaudus "Refresh" mygtuką, į serverį siunčiama užklausa ir gražinamas užkoduotas atsakymas. Iš pirmų dviejų atsakymo baitų (78DA) galima spręsti, kad tai tiesiog su gz suspaustas failas/tekstas. Iškompresavus hex editoriuje jau matosi kai kurie kambarių pavadinimai. Šiek tiek pasityrinėjus formatą, ištraukiau kambario ID, pavadinimą ir kiek žaidėjų jame yra.

 

// Sitam masyve laikysime informacija apie rastus kambarius
$rooms = array();

// Imam duomenis is serverio
$data = gzuncompress(file_get_contents('http://178.79.169.126/list3'));

// Ieskom kambariu, zemiau nurodyti 4 baitai zymi kambario ID pradzia
$offset = 0;
while (($pos = strpos($data, "\x00\x1a\x00\x40", $offset)) !== false)
{
   $offset = $pos + 4;

   // Sekantys 64 baitai (manau) yra kambario ID
   $id = substr($data, $offset, 64);

   // Kaip supratau kambario pavadnimas uzima kintama baitu skaiciu, po jo eina
   // du zaideju informacijos baitai, tada du null baitai arba header ir null 
   // baitas. Pagal tai surandam kambario pavadinima.
   $term2 = strpos($data, "\x00\x00", $offset);
   $term1 = strpos($data, "\x01\x00", $offset);
   $term = ($term1 < $term2) ? $term1 : $term2;

   $start = $offset + 64 + 2;
   $name = substr($data, $start, $term - $start - 2);

   $players = hexdec(bin2hex(substr($data, $term - 2, 1)));
   $capacity = hexdec(bin2hex(substr($data, $term - 1, 1)));

   $rooms[] = array(
       'id' => $id,
       'name' => $name,
       'players' => $players,
       'capacity' => $capacity
   );
}

// Ziurim ka turim
echo "<pre>"; var_dump($rooms); echo "</pre>";

Redagavo alter
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...