Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[TuT] Skanowanie portów czyli licznik online po portach!


Lyons

Rekomendowane odpowiedzi

Opublikowano

to pewnie tak zadziała ale z tego co wiem to o 2 połączenia będziesz miał za dużo. no i ogólnie dużo tutaj linijek a jako iż basha nie znam to się nie wypowiadam

 

umarł

Opublikowano

Teraz jak to testuję to coś nie działa i arytmetyka na tym nie idzie.

Napisz do mnie, jeżeli potrzebujesz patcher'a.

Opublikowano

To nie jest poprawna metoda na zliczanie ilości graczy. Wyniki są bardzo przekłamane względem rzeczywistej ilości graczy.

 

Serwer Metina udostępnia możliwość pobrania ilości graczy dla każdego podserwera. Metoda skorzystania z tego jest następująca:

 

Do naszych zastosowań wystarczy łączyć się tylko z jednym podserwerem dla danego channela i pobierać ilość graczy na danym channelu. W pierwszej kolejności musimy skonfigurować każdy taki wybrany przez nas podserwer tak, aby przyjmował połączenia z naszego serwera strony. Ustalamy też hasło, które będziemy używać do podłączenia się.

 

Linijki, które powinny znaleźć się w pliku konfiguracyjnym:

adminpage_ip1: 10.10.250.2
adminpage_password: ABC

(jako adres IP podajecie oczywiście adres IP serwera, z którego będziecie się łączyć)

 

Metoda pobrania ilości graczy:

  1. Łączysz się z z wybranym game (w naszym przypadku game00) dla pierwszego kanału poprzez protokół TCP.
  2. Od tego momentu, wszystkie komendy jakie wysyłamy do serwera powinny wyglądać następująco:
    "\x40%s\x0A"

    Gdzie %s to treść naszego polecenia. Zastanawiam się właśnie skąd wytrzasnąłem to \x40 na początku, ale w naszym przypadku, komunikacja w ten sposób działała bez zarzutu, więc zostawiam jak jest.

  3. Pierwsza komenda jaką wysyłamy to hasło, które ustaliliśmy w pliku konfiguracyjnym. Dzięki temu serwer będzie wiedział, że jesteśmy uprawnieni do wywoływania pozostałych komend. "ABC"
  4. Następnie wysyłamy komendę "USER_COUNT".
  5. Zwrot będzie wyglądał następująco "x x x x x". Pierwsze x to liczba osób na danym kanale. Następne x'y to liczby lokalne dla danego game, z którym się łączymy, więc nie interesują one nas.

Proces powtarzamy dla pozostałych kanałów.

 

Prosta metoda i skuteczna. Korzystaliśmy z niej przez długi czas na Tiverii, ale porzuciliśmy ją dla jeszcze lepszej, która pozwala nam wyświetlać liczbę graczy w czasie rzeczywistym i pozwala nam ją pobrać w naprawdę błyskawiczny sposób.

 

edit: Dodam jeszcze tylko, że warto taką ilość graczy cachować na kilka minut. Pobieranie ilości graczy tą metodą dla każdego requesta nie wpłynie dobrze na czas ładowania strony.

 

 

 

Zwracam honor. Widzę, że już napisałeś o tym sposobie.

Opublikowano

@Usama

Tak skończyłem ale nie mam zamiaru kasować. Myślę nad udostępnieniem parę innych questów i dungeonów robionych przez mnie.

@EDIT DO USMY:

Co może taki skrypt zdziałać przy ataku? Jedynie przy ataku ddos zwiększyć liczbę online ;P

 

@UP:

Coś podobnego, coś na zasadzie działania GameTracker, czyli pinguje nasze porty (po przez wcześniejsze podanie ip) i sprawdza naszą ilość graczy, w tym przypadku gracze będą dokładni co do hymm, 10. U mnie na serwerze przy np 150 graczach pokazywało około 160-170.

 

@Inne:

 

Wystarczy dać: stat.file i odwołanie zapisu do pliku os.execute("netstat -an | grep 13500 | wc -l >> plik.txt")

Czyli 2 nowe funkcje:

 

os.execute

i

os.remove

Metin2 To zło! Koniec z tworzeniem serwerów! Czas na publikowanie rzeczy!

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...