帶有破折號的非標準 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-
,出現“** server can’t find 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 mkrepro@mkrepro.NetBSD.org:/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
這只是從 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
上面提到的命令。編輯:作為以下作業系統(NetBSD 8.1)上的 OP 更新資訊,這是根據NetBSD 手冊頁在 NetBSD 上獲取 IP 而不是 DNS 記錄的方法:
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,但只有在該使用者註銷後。