Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <unistd.h>
- #include <sys/socket.h>
- #include <stdio.h>
- #include <sys/utsname.h>
- #include <iostream>
- #include <time.h>
- #include <sys/sysinfo.h>
- #include <vector>
- using namespace std;
- const int n = 500;
- char Host[n];
- char User[n];
- char CWD[n];
- utsname UTS[n];
- time_t Time[n];
- struct sysinfo Sys[n];
- int main(int argc, char **argv) {
- if(gethostname(Host, sizeof(Host)) == 0)
- printf("|Hostname = %s\n", Host);
- if (getlogin_r(User, sizeof(User)) == 0)
- printf("|Username = %s\n\n", User);
- printf("|Metrics:\n");
- if (sysconf(_SC_ARG_MAX) != -1)
- printf(" |ARG_MAX: %ld\n", sysconf(_SC_ARG_MAX)); // максимальная длина аргументов
- if (sysconf(_SC_CHILD_MAX) != -1)
- printf(" |CHILD_MAX: %ld\n", sysconf(_SC_CHILD_MAX)); // количество одновременных процессов для одного идентификатора пользователя
- if (sysconf(_SC_VERSION) != -1)
- printf(" |POSIX Version Date: %ld\n\n", sysconf(_SC_VERSION)); // Версия стандарта POSIX. Формат ГГГГММ
- if (uname(UTS) == 0){
- printf("|OS DATA:\n"); // Информация о ОС из UTS (Тип данных содержащий в себе инфу о ОС)
- printf(" |OS NAME: %s\n", UTS->sysname); // ИМЯ ОС
- printf(" |NODE NAME: %s\n", UTS->nodename); // ИМЯ МАШИНЫ
- printf(" |RELEASE: %s\n", UTS->release); // ВЫПУСК ОС
- printf(" |VERSION: %s\n", UTS->version); // ВЕРСИЯ
- printf(" |HARDWARE TYPE: %s\n\n", UTS->machine); // АРХИТЕКТОРА КОМАНД ПРОЦЕССОРА
- }
- if (time(Time) != 0)
- printf("|Time: %ld\n", time(Time)); // Время в секундах от 1 января 70 года
- if (asctime(localtime(Time)) != "Thu Jan 1 00:00:00 1970")
- printf("|Time: %s\n", asctime(localtime(Time)));
- if (getusershell() != NULL) // У нас в системе есть файл /etc/shells/ и там у нас лежат все возможные оболочки пользователя. Мы просто берем последнюю от туда и возвращаем сюда
- printf("|User Shell: %s\n", getusershell()); // https://white55.ru/shells.html
- if (getcwd(CWD, sizeof(CWD)) != NULL) // getcwd - текущий рабочий каталог
- printf("|Path: %s\n", getcwd(CWD, sizeof(CWD)));
- if (getpid() != 0) // process id
- printf("|PID: %d\n", getppid());
- if (sysinfo(Sys) == 0){ // sysinfo получает системную инфу, статистику
- printf("|Free RAM(bytes): %lu/%lu\n", Sys->freeram,Sys->totalram);
- printf("|Uptime: %ld\n", Sys->uptime);
- printf("|Process: %d\n", Sys->procs);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement