저는 "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.
처음에는 비슷한 질문, 특히 다음과 같은 질문을 찾고 있었습니다. 'last -d'는 정말 느립니다
호스트 파일을 업데이트하고 0.0.0.0 localhost를 추가하기 전까지는 더 적은 수의 호스트 이름과 더 많은 IP 주소를 받았습니다. 이는 Linux가 운영 체제 어딘가에 호스트 이름을 저장한다는 것을 의미합니다. 이 경우 명령을 사용하지 않고 호스트 이름에 액세스할 수 있는 방법이 있습니까 last -d
?
답변1
보고서에 따르면 man last
내 Arch Linux 시스템은 로그인 정보를 /var/log/wtmp
.바이너리 형식- 즉, 일반적인 텍스트 도구는 그 일부만 표시합니다.
이 명령은 점 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;
}