다음 명령을 사용하여 원격 컴퓨터에 있는 다른 사용자의 이름을 볼 수 있습니다 who
.또한 이 사용자의 IP 주소를 알고 싶습니다...
/sbin/ifconfing
명령을 사용 하려고 하는데 netstat
긍정적인 결과를 얻을 수 없습니다...
Linux 및 Unix와 호환되는 이 솔루션이 필요합니다...
이 유틸리티에 대한 명령이 있습니까? 스크립트를 작성하거나 일종의 파이프라인을 사용해야 합니까?
답변1
w
명령을 시도해 보세요 .procps
팩.
$ w
21:12:09 up 6 days, 7:42, 1 user, load average: 0.27, 1.08, 1.64
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
h3xx pts/11 192.168.1.3 21:12 2.00s 0.04s 0.04s -bash
답변2
내 Debian Linux 시스템의 맨페이지에는 호스트 이름 대신 IP를 표시하는 옵션이 who
있음이 나와 있습니다 .--ips
답변3
who
내가 사용하는 명령이지만 100% 신뢰할 수는 없습니다. 생성된 이름은 IP 주소의 PTR 레코드에서 나옵니다. 이름에는 일치하는 A 레코드가 있을 수도 있고 없을 수도 있습니다.
루트 액세스 권한이 있으면 ps
및의 데이터를 통합할 수 있습니다. netstat
그렇지 않으면 어떤 연결이 어떤 프로세스에 속하는지 추측만 할 수 있습니다.
사용할 수 있는 다른 도구가 있지만 UNIX/Linux 스타일의 일관된 인수와 출력을 갖춘 프로그램을 찾지 못했습니다.
답변4
일부 이전 UNIX(예: SCO OpenServer 릴리스 5.0.7)에서는 이 w
명령을 사용하는 것이 좋지만 기본적으로 IP 주소를 출력하지 않습니다. 명령 매개변수가 필요한 경우도 있습니다. man
페이지 에서 :
-x
Print out the hostname. This option cannot be used with
the -u option.
-X
Print out full hostnames. This option implies the -x
option. Hostnames printed by the -x option are truncated
to fit into a field; hostnames printed by the -X option
are not truncated.
예를 들어:
$ w
2:39pm up 2 days, 11:07, 1 user, load average: 0.00, 0.00, 0.00
User Tty Login@ Idle JCPU PCPU What
minime ttyp0 2:31pm - - - w
$ w -x
2:39pm up 2 days, 11:07, 1 user, load average: 0.00, 0.00, 0.00
User Tty Login@ Idle JCPU PCPU Hostname What
minime ttyp0 2:31pm - - - 192.168.36.188 w -x