Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobranie listy serwerów gier
Forum PHP.pl > Forum > PHP
kaczy
W jaki sposób przez php można pobrać liste serwerów danej gry. Chodzi mi o coś takiego jak jest na stronie: private-servers.info
bim2
Hmmm
1. Otwierasz np. notatnik
2. Piszesz kod
3. Otwierasz paint
4. Robisz design
5. Łączysz design z kodem
5. Wrzucasz na serwer
6. Gotowe!

A tak na serio, chcesz żeby ktoś dał ci gotowca? Pokaż jaki kod napisałeś i wytłumaczymy co dalej.

Powiem tylko, że user musi miec forma gdzie może uzupełnic dane o serwerze. Wrzucasz je do bazy i wyświetlasz.
kaczy
Kodu nie mam bo go jeszcze nie napisałem, chce się dopiero za to zabrać ale żeby zacząć muszę wiedzieć jak to zrobić, logiczne. Co do tych serwerów to zauważyłem że się same aktualizują, znaczy się gdy na serwerze ktoś zmieni mapkę w grze, to się automatycznie zmienia na stronie, to samo co do osób które wchodzą grać na serwer, za każdym razem gdy ktoś wejdzie automatycznie pokazuje login gościa.
bim2
Cron -> odświeżanie co 5min danych serwera

A jak pobierać dane z serwera, to zalezy już od gry itd. Pewnie Tibia lub CS, więc skryptów w sieci znajdziesz masę.
kaczy
Chodzi o serwery gry: Call of Duty.
Co do Cron-a to pomysł dobry i na pewno wykorzystam.
Ale nie mam pojęcia jak wyszukiwać te serwery i ich dane, jest w PHP jakaś funkcja do tego ?
bim2
Jest,
fsockopen" title="Zobacz w manualu PHP" target="_manual, unpack" title="Zobacz w manualu PHP" target="_manual itd. Pochodne do tej. Życzę powodzenia w pisaniu kodu smile.gif

PS> Pierw poszukaj na necie czy ktoś już nie napisał tongue.gif
kaczy
Utworzyłem taki oto kod:
  1. <?php
  2. if($w = fsockopen("udp://cod4master.activision.com", 20800, $errno, $errstr, 10)){
  3.    echo "Połączenie nawiązane<br />";
  4.    
  5.    foreach(unpack("c2chars/nint", $w) as $k){
  6.        echo $k."<br />";
  7.    }
  8. } else {
  9.    echo "$errstr ($errno)<br />\n";
  10. }
  11. ?>


Sktypt wyświetla takie informacje:
82
101
29551

i nawet nie wiem co to jest. Podejżewam że te informacje z serwera powinny być odczytywane jakoś inaczej. Ale jak?
bim2
Przeczytaj specyfikację serwera, albo kombinuj smile.gif Moim zdaniem musisz udać grę. Ale będzie ciężko. Nigdy nie bawiłem się z COD, więc więcej nie powiem.
kaczy
Nie chodziło mi zupełnie o to. Skrypty pobierają dane serwera gry. Czyli jeśli jakaś osoba założy sobie grę w internecie wpisuje się do skryptu adres IP tego serwera i on pobiera wszystkie dane, czyli: liczba graczy, nazwa mapy itp. A ja chciałbym pobrać wszystkie serwery danej gry jakie istnieją w internecie.

Odnalazłem taki przykładowy skrypt (wyświetla zawartość strony php.net w naszej stronie):
  1. <?php
  2. //połączenie z serwerem - ja będę się łączył poprzez "udp://cod4master.activision.com" serwer poniżej podałem dla przykładu
  3. $fp = fsockopen ("www.php.net", 80, $errno, $errstr, 30);
  4. if (!$fp) {
  5.    echo "$errstr ($errno)<br>\n";
  6. } else {
  7.    fputs ($fp, "GET / HTTP/1.0r\nr\n");         // Tutaj zapytanie wysyłane do serwera - ja muszę wysłać zapytanie do serwera UDP
  8.    while (!feof($fp)) {
  9.        echo fgets ($fp,128);
  10.    }
  11.    fclose ($fp);
  12. }
  13. ?>


I ja właśnie nie wiem jak takie zapytanie UDP powinno wyglądać, może ktoś zna się na tym ?

Jeszcze jedno takie małe pytanko. Co gdy mam zablokowane porty, w tym przypadku port: 20810 ? Czy uda mi się uzyskać odpowiedź z serwera ?
bim2
Pokazałeś kod na którym operujesz też na jakimś API, dokładniej html i akurat przeglądarka internetowa umie to odczytać, tj. wie gdzie co ma być. teraz ty musisz udać taką przegladarkę internetową i musisz umiec odczytać liste graczy, typ gry, mapę itd.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.