Где «последний» хранит имена хостов пользователя?

Я изучал: команду «last -d».

-d: For non-local logins, Linux stores not only the host name of the remote host but its IP number as well. This option translates the IP number back into a hostname. 

Сначала я рассматривал аналогичные вопросы, в частности: «последний -d» ДЕЙСТВИТЕЛЬНО медленный

Прежде чем я обновил файл моих хостов и добавил: 0.0.0.0 localhost Я получил меньше имен хостов и больше IP-адресов. Итак, это означает, что Linux хранит имена хостов где-то в ОС. Если это так, есть ли способ получить имена хостов без last -d команды last -d ?

One Solution collect form web for “Где «последний» хранит имена хостов пользователя?”

По словам man last , моя система Arch Linux хранит данные для входа в /var/log/wtmp . Он выглядит в двоичном формате, то есть обычные текстовые инструменты будут показывать только его части.

Эта команда: xxd /var/log/wtmp | more xxd /var/log/wtmp | more показывает мне как текстовые текстовые IP-адреса с точками, так и полностью квалифицированные DNS-имена.

Я написал следующую небольшую программу, чтобы показать мне, что было в /var/log/utmp . Похоже, что не каждая запись имеет имя хоста / IP-адрес и что двоичный формат имеет только небольшое фиксированное количество места для имени хоста.

 #include <stdio.h> #include <utmp.h> int main(int ac, char **av) { struct utmp *utmpp; utmpname("/var/log/wtmp"); while (NULL != (utmpp = getutent())) { printf("%s\n", utmpp->ut_host); } endutent(); return 0; } 
Linux и Unix - лучшая ОС в мире.