Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Status serwera gry – fsockopen
Forum PHP.pl > Forum > Przedszkole
szczabik
Witam chciałem zrobić sobie status serwera gry unreal.

Napisałem taki kod ale wywala błąd

  1. <?php
  2. $fp = fsockopen("unreal://80.72.41.210", 29000);
  3. if (!$fp) {
  4.    echo 'blad';
  5. } else {
  6. echo 'Ok';
  7. }
  8. ?>


I wywala błąd

Warning: fsockopen() [function.fsockopen]: unable to connect to unreal://80.72.41.210:29000 (Unable to find the socket transport "unreal" - did you forget to enable it when you configured PHP?) in C:\Program Files\WebServ\httpd-users\test\test.php on line 3
blad

Wie ktoś czemu ten błąd sie pojawia ?
RafaelX
unreal://80.72.41.210
nie ma takiego socketu
daj
http://80.72.41.210
szczabik
Dalej ten sam błąd
A adres podaje dobry co widać na screnie
RafaelX
a jak dasz samo ip to ci masz ?

moze spróbuj tak

  1. <?php
  2. $fp = fsockopen("80.72.41.210", 80);
  3. if (!$fp) {
  4.   echo 'blad';
  5. } else {
  6. echo 'Ok';
  7. }
  8. ?>


w tedy to bedzie traktowane jako połaczenie z http
szczabik
Jak dam samo IP to długo strona myśli i wywala

Warning: fsockopen() [function.fsockopen]: unable to connect to 80.72.41.210:29000 (Próba połączenia nie powiodła się, ponieważ połączona strona nie odpowiedziała poprawnie po ustalonym okresie czasu lub utworzone połączenie nie powiodło się, ponieważ połączony host nie odpowiedział. ) in C:\Program Files\WebServ\httpd-users\test\test.php on line 3

Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files\WebServ\httpd-users\test\test.php on line 3

Dziwne ale jak dam tak jak podałes RafaelX to działa
  1. <?php
  2. $fp = fsockopen("80.72.41.210", 80);
  3. if (!$fp) {
  4.  echo 'blad';
  5. } else {
  6. echo 'Ok';
  7. }
  8. ?>
RafaelX
w google znalazłem takie coś (dot. serwera CS z w twoim przypadku także powinno działać)
  1. <?php
  2. $fp = fsockopen("udp://80.72.41.210", 29000);
  3. if (!$fp) {
  4.   echo 'blad';
  5. } else {
  6. echo 'ok';
  7. }
  8. ?>
szczabik
Ok działa.
A jak mogę pobrac info np ile graczy na serwrze ?
RafaelX
musiał bym wiedzieć w jakim pliku i w jakiej postaci te informacje są umieszczane

jak masz ten serwer u siebie albo masz dostąp do ftp to możesz podać nazwę pliku i jego zawartość i w tedy można to z niego "wyciągnąć"
szczabik
A nie da sie podobnie jak tutaj http://forum.php.pl/index.php?showtopic=23051 ?
Gdzie dane są pobierane w postaci tablicy ?
Próbowałem coś zdziałać ale nic nie wychodzi albo błąd wywala.

Zrobilem takie coś
  1. <?php
  2. $fp = fsockopen("udp://80.72.41.210", 29000);
  3. if (!$fp) {
  4.  echo 'blad';
  5. } else {
  6. echo 'ok';
  7.  
  8. @fwrite( $fp, sprintf( '%c%c%c%c%s%c', 0xFF, 0xFF, 0xFF, 0xFF, "infostring", 0x00 ) );
  9. @fread( $fp, 24 );
  10. $status = @socket_get_status( $fp );
  11.  
  12. print_r($status);
  13. }
  14. ?>


I zwraca
okArray ( [stream_type] => udp_socket [mode] => r+ [unread_bytes] => 0 [seekable] => [timed_out] => [blocked] => 1 [eof] => )
RafaelX
na serwerze CS inaczej te dane są przechowywane
szczabik
Czyli inaczej nie da sie tego zrobić ?
RafaelX
chyba nie (nie jestem pewien)
ale na 99% na serwerze znajduje sie plik który przechowuje te dane i najprościej było by go przetworzyć
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.