作者Tudo11927 (土豆 thoo tau)
看板PttEarnMoney
標題[聊天] 文章代碼轉網址
時間Wed Aug 21 00:50:00 2019
如題,之前就發現時間相近的文章,其代碼會相類似,但又不完全是流水號,於是花
了好一段時間查找到底是如何編碼的,最後在 C_Chat 的某篇裡面找到解釋
(不知為啥會在那裡,找了好幾個站務板跟新手板都沒找到)
文章網址的後半部就是 Ptt站內的文章檔名
例:
https://webptt.com/m.aspx?n=bbs/PttEarnMoney/M.1566287402.A.6D0.html
然後這串字的組成是 M.(時間).A.(隨機碼)
其中時間是以十進制表示的 unix time,目前是10位數,有些老文章(2001-09之前)
的網址可能是 9位數的
隨機碼是16進位的三位數,範圍從000到FFF,有些老文章似乎是沒有隨機碼的,推測
可能是某次的系統改版加入的?
而文章代碼的產生方式就是把時間跟隨機碼轉成64進位後黏在一起,64進位編碼如下
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_
手動轉換的話轉成 8進制比較好查表:
第二位
\
第一位 01234567
0 0 1 2 3 4 5 6 7
1 8 9 A B C D E F
2 G H I J K L M N
3 O P Q R S T U V
4 W X Y Z a b c d
5 e f g h i j k l
6 m n o p q r s t
7 u v w x y z - _
如果要反查文章代碼,以剛剛的網址為例:
https://webptt.com/m.aspx?n=bbs/PttEarnMoney/M.1566287402.A.6D0.html
時間部分:1566287402,
十進制轉成八進制:13526723052,
再兩位兩位分開:01.35.26.72.30.52
查表: 1 T M w O g
隨機碼部分:6D0
十六進制轉八進制:3320
隔兩位分開:33.20
查表: R. G
由此即可得到該文章的文章代碼應為
#1TMwOgRG
再以本篇文章為例,預計於 2019.08.21 00:50:00 (UTC+8) 發出,則網址時間部分
應該是1566319800,文章代碼前六碼是 1TN2Iu
Unix time 是從1970.01.01 00:00:00 開始計秒的數字,因此文章代碼中的前六碼會
照時間逐漸往後排,而相近時間內的文章前三到四碼也可能是完全一樣的,特別像是
八卦板搶七或是地震文時就很明顯,不過屍體無法查代碼就是了。這個數字排到2^31
時,32位元的系統會出問題,可維基or估狗「2038年問題」。之前 Ptt某次故障似乎
影響到系統時間, SYSOP上可見有幾篇1970-01-01的文章,其網址後段就是
M.1.A.***,文章代碼為#000000** (**是隨機碼)
有些較古老的文章(例如本板
#0yilHt00)是沒有隨機碼的,文章代碼的末二位就會是
00結尾
以上無聊冷知識,可說是幾乎沒啥用,如果要用網址找代碼可以直接回到看板內找標
題,反過來用代碼找網址直接 Q下去也能看到
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.164.126.74 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PttEarnMoney/M.1566319802.A.35E.html
1F:→ Tudo11927: 結果代碼跟預測的差了2秒XD 218.164.126.74 08/21 00:50
2F:→ Tudo11927: 稿費早上起來再想怎麼發 218.164.126.74 08/21 00:51
推 ushotu: 豪厲害 219.85.126.37 08/21 00:51
推 inhumanq: 漲知識了;不過文章網址可透過修文刪除~ 123.193.249.122 08/21 00:55
3F:→ Tudo11927: 查代碼的大Q會一起給出網址 218.164.126.74 08/21 00:57
4F:→ Tudo11927: 所以修掉還是查的到 218.164.126.74 08/21 00:58
推 alan23273850: 長知識給推 114.136.42.180 08/21 01:00
5F:推 inhumanq: 您說的對;或者在網頁板到板上搜尋標題123.193.249.122 08/21 01:07
6F:→ inhumanq: 後點入,網址列仍能看到該篇文章的網址~123.193.249.122 08/21 01:07
→ kousakaizumi: 曾爬過看過url2aid方法 我用這轉換 111.241.156.59 08/21 01:25
8F:→ kousakaizumi: 參考 Web2PttChrome 的 Script 111.241.156.59 08/21 01:25
推 n6335097: 嗯嗯跟我想的一樣 220.128.109.97 08/21 09:56
推 nnnnnooooo: 長知識了 111.185.149.106 08/21 10:30
@ 以上紅底標記6位,每人63P(稅後)發送完成! by AutoGiveP 2.10
※ 編輯: Tudo11927 (218.164.126.74 臺灣), 08/21/2019 10:58:13
10F:推 n6335097: 收到意外包乾蝦\@@ 220.128.109.97 08/21 10:59
11F:推 ushotu: 謝謝土豆:)雖然很努力看完本文還是不太懂 61.64.110.220 08/21 11:03
我也想不太到要怎麼寫的比較易讀 ^^||
12F:推 nnnnnooooo: 收到謝謝 長知識又有紅包拿XD111.185.149.106 08/21 12:40
13F:推 inhumanq: 土豆甘蝦~話說您發文按下s並送出後還有123.193.249.122 08/21 13:22
14F:→ inhumanq: 花時間選簽名檔嗎?儘管發文時間已固定123.193.249.122 08/21 13:23
沒
就跟搶時鐘一樣直接連點Enter送出
15F:→ inhumanq: ,但或許跟文章 "出現" 的時間點有關?123.193.249.122 08/21 13:24
剛好samok在八卦板的搶7文有用延時選簽
名檔的方式弄出22:22:22的發文時間,但
看文章網址還是跟前後差不多,所以應該
是看文章出現的時間沒錯。
16F:→ kousakaizumi: 收到感謝 111.241.156.59 08/21 20:58
※ 編輯: Tudo11927 (218.164.126.74 臺灣), 08/21/2019 21:54:06
17F:→ ushotu: 沒啦 是我的問題orz 27.105.28.120 08/21 22:24