←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Zabezpieczenie Pluginu na IP+SQL

  • +
  • -
Ps^chol ?!'s Photo Ps^chol ?! 07.02.2016

Witam,mam pytanie jak mogę zabezpieczyć plugin nie dajac .sma na dane ip.IP by był brane z Bazy SQL. Tzn np dodaje nowe ip w bazie danych wpisuje ip,ilość godzin itp( bd na zawsze ale wrazie trailu) i jeśli np ustawilem na 3 dni to wyłaczy się po 3 dniach ?

 

Wiem ze to jest możliwe.Csgomods ma takie coś.

Quote

mayday245's Photo mayday245 07.02.2016

Podpinam sie

Quote

  • +
  • -
wiwi249's Photo wiwi249 07.02.2016

Tworzysz baze danych. Kolumny id (AUTO_INCREMENT, PRIMARY KEY, INT(11)), ip_serw (VARCHAR(32)), czas (INT(11))
Jeśli chcesz dodać serwer, wystarczy dodać rekord do tablicy poleceniem SQL

INSERT INTO serwery (ip_serw, czas) VALUES ('127.0.0.1:27015', UNIX_TIMESTAMP()+259200);

w tym ważne żeby użyć UNIX_TIMESTAMP() do czasu, a zamiast 127.0.0.1:27015 wstawiasz IP serwera (wraz z portem)

Co to za liczby dodaję do UNIX_TIMESTAMP() ? Ano, to jest przeliczenie 3 dni działania serwera na sekundy (czyli do obecnego dnia dodajemy jeszcze trzy dni)

Potem w AMXX tworzysz sobie obsługę SQL, i pobierasz sobie IP serwera

new ip[32]
get_user_ip(0, ip, 31, 0);

Jakkolwiek wygląda Twoja funkcja od poleceń SQL, wysyłasz takie zapytanie:

new query[128];
formatex(query, 127, "SELECT * FROM serwery WHERE ip = '%s' AND czas < UNIX_TIMESTAMP();", ip);
SqlQuery(query); //czy jakkolwiek wygląda Twoja funkcja od SQL

Sprawdzasz potem tylko ile rekordów zwróciło zapytanie, jeśli 0 to nie ma licencji i wówczas należy wykonać set_fail_state() (zobacz w dokumentacji). Jeśli z kolei jest 1 lub wiecej wyników, wiemy że licencja jest.

Wireshark Cookie Dump:

OKCancel

 


Edited by wiwi249, 07.02.2016 12:27.
Quote

  • +
  • -
Ps^chol ?!'s Photo Ps^chol ?! 07.02.2016

To tak. Zrrozumialem ze mam zrobic baze danych wyslac te zapytanie sql a do tego pluginu wklepac ten kod?

 

"new query[128];

formatex(query, 127, "SELECT * FROM serwery WHERE ip = '%s' AND czas < UNIX_TIMESTAMP();", ip);
SqlQuery(query); //czy jakkolwiek wygląda Twoja funkcja od SQL"

Quote

  • +
  • -
wiwi249's Photo wiwi249 07.02.2016

Tak, to jest kod AMXX do pluginu, który powinien znaleźć się w plugin_init.

Wireshark Cookie Dump:

OKCancel
Quote

  • +
  • -
Ps^chol ?!'s Photo Ps^chol ?! 09.02.2016

A nie potrzebne polaczenie z baza danych ?

Quote

  • +
  • -
wiwi249's Photo wiwi249 10.02.2016

No jak chcesz pobierać IP z bazy danych to raczej że potrzebne jest z nią połączenie...

Wireshark Cookie Dump:

OKCancel
Quote

  • +
  • -
Ps^chol ?!'s Photo Ps^chol ?! 14.02.2016

A jak dodać do pluginu żeby czytalo z bazy danych i podpiać pod nia ?

Quote

  • +
  • -
Ps^chol ?!'s Photo Ps^chol ?! 14.02.2016

A jak dodać do pluginu żeby czytalo z bazy danych i podpiać pod nia ?

 

Laggg...


Edited by Ps^chol ?!, 14.02.2016 21:45.
Quote

  • +
  • -
wiwi249's Photo wiwi249 15.02.2016

amxx.pl/topic/96452-plugin-baza-danych/

Wystarczyło poszukać..

Wireshark Cookie Dump:

OKCancel
Quote