Dhcp-Server

從 dhcpd.leases 解碼 UID

  • July 20, 2022

我正在我的網路上測試分配了此租約的設備:

lease 192.168.110.85 {
 starts 3 2022/07/20 16:12:37;
 ends 3 2022/07/20 16:22:37;
 cltt 3 2022/07/20 16:12:37;
 binding state active;
 next binding state free;
 rewind binding state free;
 hardware ethernet a4:06:e9:10:95:64;
 uid "\001\244\006\351\020\225d";
}

設備在生產網路上執行不正常。我正在嘗試獲取任何資訊。

但我無法解碼 UID“\001\244\006\351\020\225d”。

根據 DHCP 手冊,這應該是一個十六進製字元串,其他來源聲明它是八進制(它不是)。如果是十六進製字元串,我應該如何解釋字節?

DHCP 伺服器是執行在 linux 平台上的 isc-dhcp。

我不知道“解碼”客戶端發送的 UID 值通常是否真的有意義,因為客戶端可能會選擇一個沒有任何意義解碼的 UID。

不過,我確實相信您很幸運,因為手冊中的建議(請參閱 uid 部分)似乎與您在範例中的建議相匹配:

uid 客戶端標識符;

uid 語句記錄了客戶端獲取租約時使用的客戶端標識符。客戶端不需要發送客戶端標識符,並且僅當客戶端確實發送了一個時才會出現此聲明。**客戶端標識符通常是一種 ARP 類型(乙太網為 1),後跟 MAC 地址,**就像在硬體聲明中一樣,但這不是必需的。

客戶端標識符記錄為以冒號分隔的十六進制列表或帶引號的字元串如果它被記錄為帶引號的字元串並且它包含一個或多個不可列印字元,則這些字元表示為八進制轉義 - 一個反斜杠字元後跟三個八進制數字。所使用的格式由預設為八進制的 lease-id-format 參數確定。

(重點補充)

查看您的 value "\001\244\006\351\020\225d",這顯然是 value 的引用字元串變體,並且大多數字節都被轉義了。

完美匹配hardware ethernet a4:06:e9:10:95:64

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