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

Я изучал: команду «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 ?

  • 'last -d' ДЕЙСТВИТЕЛЬНО медленный
  • Вход в интервал?
  • Множество пользователей ftpdxxx по последней команде
  • получение последних логинов с $ time
  • Разница между последним и последним?
  • Последние пользователи за последние 30 минут
  • последняя перезагрузка -F показывает перекрывающиеся временные интервалы
  • Linux Последняя команда weird output? Мусор для IP-адреса
  • 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 - лучшая ОС в мире.