【发布时间】:2013-11-05 07:20:35
【问题描述】:
我有以下十六进制地址:2001:0db8:3c4d:0015:0000:0000:abcd:ef12。十六进制数字有 8 个块,每个块长 16 位,共 128 位。我想将这些块中的每一个转换为二进制,即如果我采用第一个块 - 2001,而不是将其转换为二进制,而不是采用第二个块 - 0db8,将其转换为二进制等等.....
同样,我需要遍历每个块,将它们转换为二进制,然后打包。
谁能告诉我实现它的最简单方法?
【问题讨论】:
-
答案取决于这是否真的是一个 IPv6 地址,在这种情况下,您的示例也可以写为
2001:0db8:3c4d:0015::abcd:ef12。但无论哪种方式,这都不难做到。你知道pack 'H*'吗? -
@amon 是的,它是一个 IPv6 地址
-
@amon 请看一下编辑