Discord Snowflake檢查器
解碼任何 Discord ID,查看它的建立時間以及距今多久:帳號、伺服器、頻道或訊息已經存在多久。免費、免登入,ID 不會離開你的瀏覽器。
Discord Snowflake ID 是什麼?
Discord 中的使用者、伺服器、頻道、訊息和身分組,ID 都採用同一種格式,稱為 Snowflake:這是一個 64 位元的數字,最高的 42 位元是 ID 建立的時刻,以毫秒計算。解碼這一部分,就能知道 Discord 帳號何時建立、伺服器或頻道已經建立多久,或是訊息何時傳送。
Snowflake檢查器的運作方式
- 把一個或多個 Discord ID 貼到輸入框。多個 ID 可用空格、逗號或換行分隔。
- 點擊解碼或按 Enter(Shift+Enter 可換行)。
- 每個 ID 都會有獨立的結果:建立的日期和時間(以頁面語言和你裝置的時區顯示),以及距今多久。
- Unix 時間(秒)和 Discord 時間戳記都有複製按鈕。把 Discord 時間戳記貼到 Discord 訊息中,每位讀者看到的都是自己時區的日期。
- 工作者 ID、處理程序 ID和遞增值是低 22 位元中的三個欄位,而前 42 位元(二進位)則逐位元顯示時間戳記的部分。
- 無法解碼的 ID 會列在輸入框下方,其他 ID 仍會照常解碼。工具接受 17 到 20 位數字,且建立時間最多只能比現在晚一天。
如何找到 Discord ID
- 在電腦版 Discord 中,開啟設定並打開開發者模式:在目前的桌面版和網頁版中,它位於開發人員下;在舊版本和行動版中,則位於進階下。
- 對使用者、伺服器、頻道或訊息按右鍵。
- 選擇用來複製 ID 的選單項目。
- 把 ID 貼到 Snowflake檢查器,然後點擊解碼。
查看 Discord 帳號的年齡
使用者 ID 記錄了帳號建立的時刻,所以解碼後就能知道帳號已經存在多久。這並不是使用者加入伺服器的時間:Discord 另外記錄那個時間。當突襲或大量垃圾訊息來自不久前才建立的帳號時,帳號年齡可以幫助管理員判斷,但新帳號本身並不能證明什麼:每個帳號都曾經是新的。
Snowflake 的位元結構:64 位元
Discord Snowflake 是一個 64 位元的數字,分成四個欄位,由最高位元排到最低位元:
- 時間戳記 - 位元 22-63(42 位元):自 Discord Epoch 起算的毫秒數。42 位元大約可容納 139 年的毫秒數,所以這個欄位可用到 2154 年。
- 工作者 ID - 位元 17-21(5 位元):Discord 內部使用的數字,範圍是 0 到 31。
- 處理程序 ID - 位元 12-16(5 位元):另一個內部數字,範圍同樣是 0 到 31。
- 遞增值 - 位元 0-11(12 位元):從 0 到 4095 的計數器。
要取得時間戳記,先把 ID 向右移 22 位元,再加上 Epoch 的值:timestamp_ms = (snowflake >> 22) + 1420070400000。例如,175928847299117063 解碼後是 2016-04-30T11:18:25.796Z,工作者 ID 為 1、處理程序 ID 為 0、遞增值為 7。
Discord Epoch
Discord 不採用 1970 年的 Unix 紀元,而是從自己的 Epoch 開始計算:2015 年 1 月 1 日 00:00 UTC(以毫秒計的 Unix 時間 1420070400000)。從 2015 年起算,表示 42 位元的時間戳記可用到 2154 年,而不是 2109 年。沒有任何 Snowflake 能比 Discord Epoch 更早:時間戳記欄位無法存放比它更早的時間。
一個解碼器,通用所有類型的 ID
Snowflake 本身看不出它屬於什麼,所以工具對使用者 ID、伺服器 ID、頻道 ID、訊息 ID 和身分組 ID 的解碼方式都相同。ID 類型下方的按鈕只會改變日期上方的標籤,例如使用者建立時間或訊息傳送時間;解碼出來的值不會變。訊息 ID 的時間是訊息傳送的時間;伺服器、頻道或身分組則是建立的時間。有兩種物件與所屬的物件共用同一個 ID:從訊息開啟的討論串使用該訊息的 ID,所以它的時間是訊息傳送的時間;@everyone 身分組則使用所屬伺服器的 ID。
使用 Snowflake 的常見陷阱
- JavaScript 的精度損失。這個工具接受的每個 ID,都比 JavaScript 能精確儲存的最大整數(2^53 - 1)還大,所以
Number(snowflake) 可能會在不知不覺中改變最後幾位數字。請把 ID 當成字串保存,並像這個工具一樣使用 BigInt 來運算。
- 帳號建立不等於加入伺服器。使用者 ID 只能告訴你帳號是何時建立的,而不是使用者何時加入伺服器。
- 時區。Snowflake 中的時間是 UTC。工具會以你裝置的時區顯示日期,並附上時區名稱,所以同一個 ID 在兩台裝置上看起來可能不同;Unix 時間則在任何地方都一樣。
- 被刪除的項目仍保有 ID。工具只讀取數字本身,所以即使 ID 所屬的訊息、頻道或帳號已被刪除,仍然可以解碼。
更多免費 Discord 工具
由 Pigona 提供技術支援 - 為 Discord 打造的免費翻譯