This repository has been archived by the owner on Apr 22, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1k
sn domains
lennylxx edited this page Jan 25, 2015
·
24 revisions
SN 编码是 YouTube 视频缓存服务器域名中最常见的一种,编码为八位,代表服务器地理位置及组号。
根据目前获取到的地址列表来看,相当有规律,和 1e100.net 的域名规则类似。
r1---sn-[123][45][6][78].googlevideo.com
-
前三位
[123]
代表城市,由 IATA 机场编码转换而来。参阅 1e100.net 的服务器部署信息表格。
转换规则:
下面的表格方框中,从左往右,从上到下依次对应a-y
,z
暂时未知。
注意左下角是0
,而不是1
。| 6 d k r y | | --------- | | 5 c j q x | | 4 b i p w | | 3 a h o v | | 2 9 g n u | | 0 8 f m t | | --------- | | 7 e l s | z
写成代码的形式:
table = '1023456789abcdefghijklmnopqrstuvwxyz' def iata2sn(iata): global table sn = '' for v in iata: i = ((ord(v) - ord('a')) * 7 + 5) % 36 sn += table[i] return sn
反向转换:
table = '1023456789abcdefghijklmnopqrstuvwxyz' def sn2iata(sn): global table iata = '' for v in sn: i = table.index(v) i = (5 - i % 7) * 5 + i / 7 + 10 iata += table[i] return iata
-
[45]
和[78]
均为下表格中第一列 10 个字符的组合,代表服务器组号,从上到下依次对应0-9
。| 1 2 3 4 5 6 7 | 8 9 a b c d e | f g h i j k l | m n o p q r s | t u v w x y z | 0 1 2 3 4 5 6 | 7 8 9 a b c d | e f g h i j k | l m n o p q r | s t u v w x y | z
例如:
7e 7l 7s 7z 76 7d 7k 7r 7y e7 ee el es ez e6 ed ek er ey l7 le ll ls lz l6 ld lk lr ly s7 se sl ss sz sd sk sr
服务器组号转换代码:
table = '1023456789abcdefghijklmnopqrstuvwxyz' def num2code(num): global table code = '' for v in num: i = ((ord(v) - ord('0') + 1) * 7) % 36 code += table[i] return code
-
[6]
位 IPv6 地址为n
或u
, IPv4 地址为m
。例如:
-
a5mekn7r
对应的 IPv6 地址段为2607:f8b0:4007:a::/64
,IPv4 地址段为74.125.103.0/24
。 -
a5m7zu7r
对应的 IPv6 地址段为2607:f8b0:4007:407::/64
,IPv4 地址段为74.125.215.0/24
。 -
a5mekm76
对应的 IPv4 地址段为208.117.242.0/24
,不支持 IPv6。
a5m
进行反向转换可以得到lax
,因此以上三种 sn 编码均属于洛杉矶。
-
- 通过这三条规则就可以把 1e100.net 服务器编码风格的
lax17s08
转换为 sn 编码风格的a5mekn7r
。 - 查看转换代码。