같은 원격 컴퓨터에 로그인 한 다른 사용자의 IP 주소를 어떻게 알 수 있습니까? who명령 을 사용하여 원격 컴퓨터에서 다른 사용자의

who명령 을 사용하여 원격 컴퓨터에서 다른 사용자의 이름을 볼 수 있습니다 … 또한 해당 사용자의 IP 주소를 알고 싶습니다 …

나는 명령을려고 /sbin/ifconfing하고 netstat있지만 긍정적 인 결과를 가져올 수 없습니다 …

Linux 및 Unix와 호환되는이 솔루션이 필요합니다 …

해당 유틸리티에 명령이 있습니까? 스크립트를 작성하거나 파이프를 사용해야합니까?



답변

패키지의 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

답변

who데비안 리눅스 시스템 의 맨 페이지 --ips에는 호스트 이름 대신 IP를 표시 하는 옵션이 있습니다.


답변

who내가 사용하는 명령이지만 100 % 신뢰할 수는 없습니다. 결과 이름은 IP 주소에 대한 PTR 레코드의 이름입니다. 이름과 일치하는 A 레코드가 있거나 없을 수 있습니다.

의 데이터 ps와는 netstat당신이 루트 권한이있는 경우 통합 될 수 있습니다. 그렇지 않으면 어떤 연결이 어떤 프로세스에 속하는지 교육 된 추측 만 할 수 있습니다.

사용할 수있는 다른 도구가 있지만 UNIX / Linux 버전에서 일관된 매개 변수와 출력을 가진 프로그램을 찾지 못했습니다.


답변

일부 이전 UNIX (예 : SCO OpenServer Release 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