동일한 원격 컴퓨터에 로그인한 다른 사용자의 IP 주소를 어떻게 알 수 있나요?

동일한 원격 컴퓨터에 로그인한 다른 사용자의 IP 주소를 어떻게 알 수 있나요?

다음 명령을 사용하여 원격 컴퓨터에 있는 다른 사용자의 이름을 볼 수 있습니다 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

관련 정보