我可以使用以下命令查看远程计算机上其他用户的名称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 系统上的联机who
帮助页显示有一个--ips
选项可以显示 IP 而不是主机名。
答案3
who
是我使用的命令,但它不是 100% 可靠。生成的名称来自 IP 地址的 PTR 记录。该名称可能有也可能没有匹配的 A 记录。
如果您拥有 root 权限,则可以集成来自ps
和的数据。netstat
否则,您只能做出有根据的猜测哪个连接属于哪个进程。
还有其他可以使用的工具,但我还没有找到任何在 UNIX/Linux 风格上具有一致参数和输出的程序。
答案4
在一些旧的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