Ip

帶有破折號的非標準 IP 地址

  • September 15, 2020

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,但只有在該使用者註銷後。

引用自:https://serverfault.com/questions/1016925