witam
czy zna ktoś jakąś bibliotekę dzięki której można by napisać monitor połączeń ftp ?
chciałbym napisac aplikację która pokazuje mi ile mam połączeń, co jest sciągane itp na debiana ale nie mogę znaleźć nic ciekawego na ten temat ani w C ani w C++ .
pozdrawiam
Najprosciej byloby napisac patcha do demona ftp i eksportowanie statystyk przez socket/fifo. Pisanie zewnętrznego monitora monitorowanie poprzez system deskryptorow plikow do stopnia w ktorym jest pobierana pozycja w pliku nie bedzie zbyt dobrym rozwiazaniem, nienajlepszym rozwiazaniem bylyby rowniez pisanie czegokolwiek w rodzaju sniffera (np. tcpdumpa).
Zamiast patchowania demona mona zwiekszyć ilosć danych wysylanych do sysloga (loglevel) oraz przekierować w syslogu te dane do innego demona interpretujacego je, co ulatwiloby jeszcze cala sprawe ale wydluzyloby droge.
przkladowo dla vsftpd i sysloga:
syslog_enable=YES
# Uncomment this to log all FTP requests and responses.
log_ftp_protocol=YES
# Uncomment this to enable session status information in the system process listing.
setproctitle_enable=YES
w zrodelku vsftpd widac:
int facility = LOG_DAEMON;
#ifdef LOG_FTP
facility = LOG_FTP;
#endif
wiec w syslogu (/etc/syslog.conf) dalej do pajpa:
ftp.* |/sciezka/do/nazwanego/fifo
i piszesz demona ktory stawia tam pajpa i czeka na dane, potem je analizuje i podaje gotowe dane dalej.
tu wrzucilem demona ktory dziala na tej zasadzie - pobiera z pajpa i robi cos dalej. a tu drugi
Plusem takiego rozwiazania jest pelna niezaleznosc od wersji demona (o ile nie zmieni sie sposob logowania). i nie potrzeba pisac dla kazdej wersji nowej latki. minusem najprawdopodobniej bedzie to ze demon musi byc odpalony przed syslogiem (albo syslog musi dostac sig_hup zeby otworzyc pajpa), a na pewno musi byc odpalony zanim demon ftp zacznie dzialac.