作者Tudo11927 (土豆 thoo tau)
看板PttEarnMoney
标题[聊天] 文章代码转网址
时间Wed Aug 21 00:50:00 2019
如题,之前就发现时间相近的文章,其代码会相类似,但又不完全是流水号,於是花
了好一段时间查找到底是如何编码的,最後在 C_Chat 的某篇里面找到解释
(不知为啥会在那里,找了好几个站务板跟新手板都没找到)
文章网址的後半部就是 Ptt站内的文章档名
例:
https://webptt.com/cn.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/cn.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/cn.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