Status Serwera

Od HLDS.pl
(Różnice między wersjami)
Skocz do: nawigacji, wyszukiwania
(Do zrobienia)
(Proste: dodano GameQ)
 
(Nie pokazano 21 wersji utworzonych przez 4 użytkowników)
Linia 61: Linia 61:
 
[[PHP]] - jeden z najczęściej spotykanych systemów na stronach www.
 
[[PHP]] - jeden z najczęściej spotykanych systemów na stronach www.
  
Skrypty wykorzystujące ten języch są chyba w najczęstszym użyciu, i jest ich bardzo wiele - różnią się one najczęściej rodzajem obsługiwanych gier, i to widać szczególnie po jednym z aktualizacji Steam, gdzie zmodyfikowano sposób sprawdzania statusu serwera. Bardzo często na serwerze php musi byc tak skonfigurowane aby był dostęp do funckji fsockopen (czyli musi byc skonpilowany z opcją sockets i ta funkcja nie może byc blokowana). Dodatkowo niektóre skrypty wymagają register_globals on - ale zamiast używać takiego skryptu radzę poszukac czegos innengo ze względów bezpieczeństwa.
+
Skrypty wykorzystujące ten język są chyba w najczęstszym użyciu, i jest ich bardzo wiele - różnią się one najczęściej rodzajem obsługiwanych gier, i to widać szczególnie po jednym z aktualizacji [[Steam]], gdzie zmodyfikowano sposób sprawdzania statusu serwera. Bardzo często na serwerze php musi być tak skonfigurowane aby był dostęp do funckji fsockopen (czyli musi być skompilowany z opcją sockets i ta funkcja nie może być blokowana). Dodatkowo niektóre skrypty wymagają register_globals on - ale zamiast używać takiego skryptu radzę poszukać czegoś innego ze względów bezpieczeństwa.
  
 
Skrypty w PHP można podzielić na proste, złożone i kombinowane.
 
Skrypty w PHP można podzielić na proste, złożone i kombinowane.
  
==Proste== - składają się z jednego lub kilku plików potrzebych do wyświetlenia statusu, a konfiguracja najczęściej sprowadza sie do ustawienia numeru ip i portu naszego serwera oraz umiesczeniu pliku/plików php na serwerze www i zlinkowania na aktualną stronę.  
+
==Proste==  
Do sprawdzania serwerów Steam (np CS 1.6 czy CS:S )
+
Składają się z jednego lub kilku plików potrzebnych do wyświetlenia statusu, a konfiguracja najczęściej sprowadza się do ustawienia numeru ip i portu naszego serwera oraz umieszczeniu pliku/plików php na serwerze www i zlinkowania na aktualną stronę.  
 +
Do sprawdzania serwerów [[Steam]] (np CS 1.6 czy CS:S )
 
[[HLSS]] - autorstwa _KaszpiR_'a, bardzo prosty w konfiguracji, szablony do dostosowania wyglądu, napisany od zera z wykorzystaniem fragmentu kodu z [[PsychoStats]].
 
[[HLSS]] - autorstwa _KaszpiR_'a, bardzo prosty w konfiguracji, szablony do dostosowania wyglądu, napisany od zera z wykorzystaniem fragmentu kodu z [[PsychoStats]].
  
[http://www.greycube.com/site/download.php?list.4 Live Game Server List Standalone] - daje możliwość listowania statusu serwera nie tylko gry do CS ale także Quake3 i podobne. Działa samotnie albo jako odatek do np PHPNuke
+
[http://www.greycube.com/site/download.php?list.4 Live Game Server List Standalone] - daje możliwość listowania statusu serwera nie tylko gry do CS ale także Quake3 i podobne. Działa samotnie albo jako dodatek do np PHPNuke
  
Do sprawdzania serwerów sprzed ery Steam ( np CS 1.6 )
+
Do sprawdzania serwerów sprzed ery [[Steam]] ( np CS 1.6 )
[http://hls.prv.pl/ HLSS] - skrypt Assassiner'a, rozwinięte metody konfiguracji, szablony, niestety nie rozwijany od czasów steam, więc nadaje się tylko na serwery z czasów CS 1.5
+
[[HLSS]] - skrypt Assassiner'a, rozwinięte metody konfiguracji, szablony, niestety nie rozwijany od czasów steam, więc nadaje się tylko na serwery z czasów CS 1.5
CS 1.6 server query - autorstwa _KaszpiR_'a, napisany tuż przed HLSS2, na żywca komunikuje się z serwerem, teoretycznie powinen działać z serwrami steam ale osobiście nie polecam.
+
CS 1.6 server query - autorstwa _KaszpiR_'a, napisany tuż przed HLSS2, na żywca komunikuje się z serwerem, teoretycznie powinen działać z serwerami steam ale osobiście nie polecam.
[http://www.kquery.co.uk/ PHPQuery] - skrypt w php wyświetla to samo co HLS i CS 1.6 server query, ale napisany troche inaczej.
+
[http://www.kquery.co.uk/ PHPQuery] - skrypt w php wyświetla to samo co HLS i CS 1.6 server query, ale napisany trochę inaczej.
CS Status -  podobny do PHPQuery, tylko wszstko po francusku.
+
CS Status -  podobny do PHPQuery, tylko wszystko po francusku.
  
==Złożone== - najczęściej oferują dodatkow funkcje, np statystyki graczy z bazy danych czy dostęp poprzez rcon do serwera w celach administracyjnych.
+
 
 +
[http://gameq.sourceforge.net/ GameQ] - jest też ciekawą implementacją klasy do odpytywania serwerów gier o status.
 +
 
 +
==Złożone==  
 +
Najczęściej oferują dodatków funkcje, np statystyki graczy z bazy danych czy dostęp poprzez rcon do serwera w celach administracyjnych.
 
Przykłady
 
Przykłady
 
[http://tx2.us.unitedadmins.com/index.php?p=content&content=phpua PHP UA] - system do kontroli serwera przez www z wykorzystaniem rcon  
 
[http://tx2.us.unitedadmins.com/index.php?p=content&content=phpua PHP UA] - system do kontroli serwera przez www z wykorzystaniem rcon  
[http://hlmanager.linux-world.de Half-Life Manager] - administracja serwerem poprzez www z zuzyciem rcon racze z czasów Cs 1.5
+
[http://hlmanager.linux-world.de Half-Life Manager] - administracja serwerem poprzez www z zużyciem rcon racze z czasów Cs 1.5
[http://server.counter-strike.net/phprcon/ PHP Rcon] - oferuje administrację serwerem poprzez www przy wykorzystaniu rcona
+
[http://server.counter-strike.net/phprcon/ PHP Rcon] - oferuje administrację serwerem poprzez www przy wykorzystaniu rcona.
 +
[http://anbuelite.zawidow.com/webrcon/ WRN(WebRcoN)] - Daje nam możliwość wysyłania komend do konsoli serwera oraz zwraca wartość otrzymaną od serwera.
  
==Kombinowane== - najczęsciej wykorzystują inne programy do sprawdzania statusu, ale wywołują je na serwerze. Bardzo często php nie może byc wtedy w trybie safe_mode i nie może miec blokowanej komendy [http://php.net/exec exec(), czy tez [url=http://php.net/system system()].
+
==Kombinowane==  
[http://www.cs-expert.de/ Serverstatus] - pokazuje online/offline (tylko i wyłącznie), skrypt w php który wykonuje komendę ping w systemie, domyslnie działa na linuksie, ale ze sposobu w jaki go napisano wynika, że nadaje się do umiesczenia na maszynie gdzie użytkownicy mają dostęp do komendy ping ( a ta jest dośc często blokowana przez administratorów z powodów bezpieczeństwa)
+
Najczęściej wykorzystują inne programy do sprawdzania statusu, ale wywołują je na serwerze. Bardzo często php nie może byc wtedy w trybie safe_mode i nie może miec blokowanej komendy [http://php.net/exec exec(), czy tez [http://php.net/system system()].
Do tej kategorii należą także skrypy współpracujące z perlem, - patrz punkt 6.
+
[http://www.cs-expert.de/ Serverstatus] - pokazuje online/offline (tylko i wyłącznie), skrypt w php który wykonuje komendę ping w systemie, domyślnie działa na linuksie, ale ze sposobu w jaki go napisano wynika, że nadaje się do umieszczenia na maszynie gdzie użytkownicy mają dostęp do komendy ping ( a ta jest dość często blokowana przez administratorów z powodów bezpieczeństwa)
 +
Do tej kategorii należą także skrypty współpracujące z perlem, - patrz punkt 6.
  
 
=Lubię wsadzić ręce do źródełka...=
 
=Lubię wsadzić ręce do źródełka...=
Linia 163: Linia 170:
 
link do hlds_stats.sh, musze wrzucić z chaty
 
link do hlds_stats.sh, musze wrzucić z chaty
 
link do Server Status Thingy
 
link do Server Status Thingy
 
+
=Linki=
 +
* [http://developer.valvesoftware.com/wiki/Server_Queries Source Server Query Protocol]
 +
* [http://developer.valvesoftware.com/wiki/Master_Server_Query_Protocol Valve Developer Wiki]
 +
* [http://www.psychostats.com PsychoQuery]
 +
* [http://anbuelite.zawidow.com/webrcon/ WebRcoN]
 
[[kategoria:Statystyki]]
 
[[kategoria:Statystyki]]
 
[[Kategoria:HLDS]]
 
[[Kategoria:HLDS]]
 
[[Kategoria:SRCDS]]
 
[[Kategoria:SRCDS]]

Aktualna wersja na dzień 20:36, 15 lut 2010

Spis treści

Wstęp

Status Serwera na WWW i Statystyki graczy

Status serwera na WWW można uzyskać na kilka sposobów, różnią się one najczęściej metodą zebrania i wyświetlenia danych. Część dostępnych rozwiązań pokazuje wyłącznie status serwera, kilka oferuje też szczegółowe dane dotyczące gry graczy, takie jak celność z danej broni.

Aktualnie na internecie można znaleźć masę różnego rodzaju sposobów wyświetlenia statusu naszego serwera na www (i nie tylko, są skrypty na irc, na gg czy jabber'a). Czasem jest tego tyle, że sami nie wiemy za co się zabrać. A właściwie wstarczy, że odpowiesz na kilka poniższych pytań, które pomogą ci podjąć decyzję.

  1. Czy chcesz to zrobić szybko i łatwo, bez będnego zawracania głowy dziwnymi rzczami?
  2. Czy jednak znajdziesz trochę energii i sam możesz spróbować ustawic status serwera własnoręcznie?
  3. Czy posiadasz dostęp do bazy danych, np MySQL?
  4. Czy posiadasz na WWW obługę PHP? Jeżeli tak to czy php ma nałożone jakies ograniczenia?
  5. Czy posiadasz serwer windowsowy/linuksowy z opcją kompilowania i wykonywania programów napisanych w C/C++?
  6. Czy posiadasz serwer windowsowy/linuksowy z opcją wykonywania skryptów, np PHP, PERL, python?
  7. Czy masz chęc i mozliwość wykorzystania innych rzeczy na serwerze?

Czysto, sucho i przyjemnie!

Metoda najprostsza - niech ktoś to zrobi za nas, bo my nie mamy serwisu/uzdolnień aby coś takiego skonfigurować. Oznacza to najczęściej, że skorzystasz z serwisu, który świadczy taką usługę.

Wypełniając formularz dodajesz swój adres serwera i port i już po chwili masz to co chcesz bez zbytniego zawracania głowy - adres url do obrazka albo kod do wklejenia na www. Oznacza to, że ten serwis co pewien czas - albo w momencie odwołania do danego adresu - sprawdza nasz serwer i u siebie generuje obrazek albo inny element wyświtlany przez przeglądarki. Obrazek jest do wstawenia np na stronę www, czy sygnaturę na forum. czasem może to byc animacja we Flash'u.

Minusem tego rozwiązania najczęsciej:

  • rozmiar obrazka - czasem nie pasuje do wyglądu bo jest za duży.
  • kolory obrazka - stylistycznie odstaje od reszty
  • reklama - serwis dodaje do obrazka w tle swoją nazwę albo adres.
  • limity czasowe - darmowa usługa działa przez pewnie czas, potem trzeba się zarejestrować.

Oczywiście można często zapłacić za wersję komercyjną mającą więcej opcji na przykład:

  • można dodać więcej niż np 3 serwery
  • można definiować kolorystyję obrazka
  • można pozbyć się reklamy
  • bardzo często można dodać różne serwery gier, np Half-Life, Quake 3, Unreal Tournament 2004 i tym podobne.

Linków nie podaję, prędzej sami znajdziecie patrząc na sygnatury ludzi na internecie.

Troszkę majsterkowania

Metoda trudniejsza, ale prosta - instalujemy na naszej www skrypt do wyświetlania statusu. Istnieje kilka skryptów, które wymagają innych sposobów ich wywołania.

Można je podzielić na klika kategorii, w zaleśności od elementów jakich potrzebują do poprawnej pracy. - z wykorzystaniem C/C++ - napisane w języku skryptowym (php, perl, python itp) - mieszane języki skryptowe ( np strona w php, a program w tle w perlu) - z wykorzystaniem baz danych, bardzo często łączone z php, czy perlem - inne, na przykład we flashu, javie, czy javascripcie.

Baza danych

Baza danych najczęściej oznacza bazę MySQL.

Jeśli posiadasz dostęp do bazy danych, to jesteś w stanie wykorzystać naprawdę złozone systemy statystyk a serwerze, gdzyż przeważnie twoja strona WWW obsługuje skrypty PHP w wystarczającym stopniu aby skomunikować sie z bazą.

Możliwe, że nie masz dostęu do wykonywania skryptów w języku PERL na serwerze, wtedy pozostaje ci szukanie innego serwera, który umożliwia tę funkcje (i grzeabnie się w zaawansowanych konfiguracjach statstyk) albo skorzystanie z systemu który nie wymaga PERLa do działania.

Przykładem jest tu UCStats - zamiast perl'a potrzebujesz dodać plugin do AMX Moda albo AMX Mod X do serwera gry.

Jeśli jednak możesz uruchamiać perl'a to polecałbym zaznajomić się z punktem 6.

PHP

PHP - jeden z najczęściej spotykanych systemów na stronach www.

Skrypty wykorzystujące ten język są chyba w najczęstszym użyciu, i jest ich bardzo wiele - różnią się one najczęściej rodzajem obsługiwanych gier, i to widać szczególnie po jednym z aktualizacji Steam, gdzie zmodyfikowano sposób sprawdzania statusu serwera. Bardzo często na serwerze php musi być tak skonfigurowane aby był dostęp do funckji fsockopen (czyli musi być skompilowany z opcją sockets i ta funkcja nie może być blokowana). Dodatkowo niektóre skrypty wymagają register_globals on - ale zamiast używać takiego skryptu radzę poszukać czegoś innego ze względów bezpieczeństwa.

Skrypty w PHP można podzielić na proste, złożone i kombinowane.

Proste

Składają się z jednego lub kilku plików potrzebnych do wyświetlenia statusu, a konfiguracja najczęściej sprowadza się do ustawienia numeru ip i portu naszego serwera oraz umieszczeniu pliku/plików php na serwerze www i zlinkowania na aktualną stronę. Do sprawdzania serwerów Steam (np CS 1.6 czy CS:S ) HLSS - autorstwa _KaszpiR_'a, bardzo prosty w konfiguracji, szablony do dostosowania wyglądu, napisany od zera z wykorzystaniem fragmentu kodu z PsychoStats.

Live Game Server List Standalone - daje możliwość listowania statusu serwera nie tylko gry do CS ale także Quake3 i podobne. Działa samotnie albo jako dodatek do np PHPNuke

Do sprawdzania serwerów sprzed ery Steam ( np CS 1.6 ) HLSS - skrypt Assassiner'a, rozwinięte metody konfiguracji, szablony, niestety nie rozwijany od czasów steam, więc nadaje się tylko na serwery z czasów CS 1.5 CS 1.6 server query - autorstwa _KaszpiR_'a, napisany tuż przed HLSS2, na żywca komunikuje się z serwerem, teoretycznie powinen działać z serwerami steam ale osobiście nie polecam. PHPQuery - skrypt w php wyświetla to samo co HLS i CS 1.6 server query, ale napisany trochę inaczej. CS Status - podobny do PHPQuery, tylko wszystko po francusku.


GameQ - jest też ciekawą implementacją klasy do odpytywania serwerów gier o status.

Złożone

Najczęściej oferują dodatków funkcje, np statystyki graczy z bazy danych czy dostęp poprzez rcon do serwera w celach administracyjnych. Przykłady PHP UA - system do kontroli serwera przez www z wykorzystaniem rcon Half-Life Manager - administracja serwerem poprzez www z zużyciem rcon racze z czasów Cs 1.5 PHP Rcon - oferuje administrację serwerem poprzez www przy wykorzystaniu rcona. WRN(WebRcoN) - Daje nam możliwość wysyłania komend do konsoli serwera oraz zwraca wartość otrzymaną od serwera.

Kombinowane

Najczęściej wykorzystują inne programy do sprawdzania statusu, ale wywołują je na serwerze. Bardzo często php nie może byc wtedy w trybie safe_mode i nie może miec blokowanej komendy exec(), czy tez [http://php.net/system system(). Serverstatus - pokazuje online/offline (tylko i wyłącznie), skrypt w php który wykonuje komendę ping w systemie, domyślnie działa na linuksie, ale ze sposobu w jaki go napisano wynika, że nadaje się do umieszczenia na maszynie gdzie użytkownicy mają dostęp do komendy ping ( a ta jest dość często blokowana przez administratorów z powodów bezpieczeństwa) Do tej kategorii należą także skrypty współpracujące z perlem, - patrz punkt 6.

Lubię wsadzić ręce do źródełka...

Najczęściej oznacza programy napisane w C/C++ i następnie wymagające kompilacji na maszynie ka której ma program działać. Niektóre są dostępne w postaci binarnej (najczęściej plik .exe dla windows, czasem plik pod linuksa).

Przykładem jest QStat, który musi być wykonywany z konsoli na serwerze (pod linuksem w powłoce np w cronie). Qstat jest użyteczny jeśli chcemy wiele serwerów wyświtlić na raz - jest to progoram napisany w C, po kompilacji źródeł możemy go odpalić z wieloma róznymi parametrami definiującymi format wejściowy i wyjściowy danych. Jak wejście możemy mu dac na przykład listę z pliku tekstowego, a wyjście jako zwykły tekx, albo bardziej uniwersalny - jako XML.

Plusem takiej aplikacji jest ogromna szybkość wykonywania skryptu (nie mylić z czasem odopwiedzi serwera o to zależy od łącza). Minusem jest fakt, że trzeba mieć dostęp do konsoli, oraz pod linkusem możliwość kompilowania programów oraz odpowiednia wersja kompilatora (i jescze masa innych rzeczy, przeważnie instalowanych dla świętego spokoju na serwerze)

Inny program, jaki znalazł trawiator to gQuery

Najczęściej takie programy są wykonywane cyklicznie, np w cronie, i ich wynik jest zrzucany do pliku. Plik natomiast może byc odczytywany na przykład przez inny program - np php, czy jakis irc bot.


Skryptuj z nami

Skrypty, czyli napisane w języku źródła, a odpowedni program kompiluje w locie kod i go przetwarza. Języków skryptowych jest wiele, do najczęściej stosowanych należą: php, perl, python, javascript, java.

PERL

PERL

Przykładem jest parę skryptów w perl'u, domyślnie perl jest na większości platform linuskowych, ewentualnie tak jak w przypadku windows należy go zaintsalować.

Plusem jest to, że taki skrypt uruchomić można na dośc różnych platformach. Minusem - czasem wymagają jednak dodatkowych modułów, a to może skutecznie nas od straszyć od instalacji (ale prawdę mówiąc sprowadza sie to do dodatkowego wstukania kilku komend w konsoli, albo pomęczenia admina serwera aby zrobił to zanas)

CS Server Stat wiem że działał pod CS 1.5


PsychoStats - Zobacz opis instalacji wersja 1.9.X przechowuje statystki graczy w plikach html, albo php wersja 2.X już wymaga bazy danych i php i kilka modułów perl


HLStats - http://www.hlstats-community.net/ Oprócz perl'a HLStats wymaga do poprawnego działania bazy danych mysql, php i kilka modułów perl, raczej rekomendowana na komputery sprzed Steam,

HLStatsX Nowsza wersja, HLStatsX, rekomendowana pod serwery H-L:Source i posiada dodatkowo bajer pokazujący graczy na mapie świata (Google Maps)

Python

znalazłem jeden skryt w tym języku, aż dziwne że go znalazłem, nie mam pojęci aczy działa (a jeśli już to pewnie na cs 1.5 pryrcon na sourceforge.net

JavaScript

Nie znam żadnego takiego. Pewnie jest to możliwe, jak ktoś zna niech da namiary.

Java

JabaTV - Olo napisał to jakis czas temu. Do pracy wymaga dodania pluginu do MetaMod'a i skonfigurowania go, nastepnie w przeglądarce internetowej wpisujemy adres i po załadowaniu sie apletu po chwili widzimy widok mapy z góry, trochę przypomnina overview z gry.


Flash

Jedyny jaki znam, i chyba juz nie działający pod platformy Steam, to Server Status Thingy - wymagał dodatkowo jeszcze serwera z php (do generowania statusu serwera), a flash tylko zmieniał wygląd. Pamiętam, że testowałem go pod CS 1.5

Co by tu jeszcze...

Jescze jedno, takie dość rzadko stosowane rowiązanie -s krypt właściwie w php, ale do wykonywania z konsoli raczej na linuksie - eksportowania danych o statusie serwera do bazy rrdtool. HLDS_stats.sh



Zakończnie

Krótka piłka, czyli co polecam:

  • jeśli nie masz www, punkt 1.
  • jeśli masz www z php - HLSS 2 w punkcie 4
  • jeśli masz www, mysql i AMX Mod / AMX Mod X - spróbuj UC Stats z punktu 3.
  • jeśli masz www, php, perl - PsychoStats 2 albo HLStatsX z punktu 6.
  • jeśli masz możliwości większe - możesz zainteresować się QStats i gQuery, szczególnie jeśli chcesz sprawdzać masę serwerów.

To miał być tylko z lekka zaktualizowany tekst trawiatora (on miał jakies 4 linikji :D), ale jak zacząłem przeglądać to co mam dot. serwerów na dysku twardym to tak wyszło... :D


Do zrobienia

link do hlss2 na stronie (musze przygotowac artykul i wruic na www) link do hlds_stats.sh, musze wrzucić z chaty link do Server Status Thingy

Linki

Osobiste
Przestrzenie nazw
Warianty
Działania
HLDS.pl - Menu:
Inne
IRC
Inne sekcje:
Znajomi:
Narzędzia