带破折号的非标准 IP 地址

带破折号的非标准 IP 地址

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,但只有当该用户注销后才可获取。

相关内容