我who
在共享的 NetBSD 框上运行了该命令,出现了这个奇怪的用户 IP:
<redacted> pts/33 May 13 02:13 (XXX.XXX.XXX.XXX)
<redacted> pts/35 May 12 20:59 (202-172-110-147-)
<redacted> pts/36 May 6 20:36 (XXX.XXX.XXX.XXX)
我从未见过这样的 IP。显然,ping 202-172-110-147-
会抱怨“无法解析...(未知主机)”。
有一个类似的问题7 年前发布,它假定这是一种表示 IP 范围的非标准方式,但看到-
地址末尾有一个,它似乎不像是类似的东西。
编辑:
我尝试使用 进行反向 DNS nslookup 202-172-110-147-
,结果出现错误“** 服务器找不到 202-172-110-147-: NXDOMAIN”
执行w <user>
返回:
9:49AM up 89 days, 7:46, 1 user, load averages: 0.23, 0.18, 0.17
USER TTY FROM LOGIN@ IDLE WHAT
<redacted> pts/35 202-172-110-147- Tue08PM 4:13
编辑2:这是在 NetBSD 上,而不是我在开始时提到的 Linux 上(我以为这个盒子是 Linux):
$ uname -rsv
NetBSD 8.1 NetBSD 8.1 (GENERIC) #0: Fri May 31 08:43:59 UTC 2019 [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC
编辑 3:根据 @NStorm 的更新,我尝试w -n
将网络地址显示为数字。我仍然看到相同的结果
$ w -n <user>
9:57AM up 89 days, 7:54, 1 user, load averages: 0.12, 0.12, 0.14
USER TTY FROM LOGIN@ IDLE WHAT
<redacted> pts/35 202-172-110-147- Tue08PM 4:22
答案1
这只是从 IP 解析到该名称的 DNS RR(反向记录)。
由于记录是独立的,因此无法真正将解析的 RR 映射回原始 IP。此外,RR 可能包含不存在的域名。因此您不能依赖 RR 来获取有关登录用户 IP 的信息。
要在没有 DNS 解析的情况下检查真实 IP,您可以使用last -a -i
命令,该命令不仅显示当前登录的用户,还显示所有最近的登录。
如果您确实需要仅显示当前登录的用户,您可以简单地使用 grep 过滤最后的输出,如下所示:last -ai | grep "still logged in"
w -fi
或者,如果您有现代发行版,您可以按照下面的 Janne Pikkarainen 评论使用。我刚刚意识到,实际上已经有一些不受支持的发行版版本不支持此工具的 -i 键,例如 CentOS 5。请记住 - 如果您的发行版抱怨w -fi
,您可以随时使用last
上述命令。
编辑:作为 OP 更新以下操作系统(NetBSD 8.1)的信息,这里是根据以下方法在 NetBSD 上获取 IP 而不是 DNS 记录的方法:NetBSD 手册页:w -n
-n Show network addresses as numbers (normally w interprets
addresses and attempts to display them symbolically).
或者last -n -f /var/run/utmptx
:
-n Print host addresses numerically. This option works only
on wtmpx(5) entries, and prints nothing on wtmp(5)
entries.
根据 NetBSD 手册页,如果用户当前已登录,/var/run/utmptx
则是唯一将当前登录用户的真实 IP 记录为struct sockaddr_storage ut_ss
字段的地方。如果您无权访问该文件和/或当前网络连接(netstat
例如,您很可能也无法访问),则无法确定。最好的方法是猜测。
看起来202-172-110-147-
记录是从 FQDN 截断的。但我们可以尝试猜测它属于202.172.110.147
尝试挖掘 RR 的 IP。然后猜对了:
dig -x 202.172.110.147
...
;; ANSWER SECTION:
147.110.172.202.in-addr.arpa. 300 IN PTR 202-172-110-147-cpe.spintel.net.au.
看起来就是这个。完整主机名是,只是在其他工具输出202-172-110-147-cpe.spintel.net.au
中被截断了。who
如果您有权访问,/var/log/wtmpx
您可以从那里获取该 IP,但只有当该用户注销后才可获取。