【问题标题】:Ruby creating binary data from human readableRuby 从人类可读的二进制数据中创建
【发布时间】:2010-11-23 13:25:06
【问题描述】:

我正在创建一个变量,它是 IPv6 数据包的有效负载,我需要将多种数据格式连接到它,但遇到了一些麻烦。

具体来说,我有:

64 - unsigned int 1 byte (prefix length)
1100 0000 - binary 1 byte (flags)
86400 - unsigned int, left padded/4 bytes (lifetime)
14400 - unsigned int, left padded/4 bytes (preferred lifetime)
0x00 0x00 0x00 0x00 - reserved/unused 4 bytes

Ruby 新手 - 任何事情都会有所帮助。

【问题讨论】:

  • 您是否收到以上ASCII格式的值并需要打包?还是您显示的值是二进制的,并且您以所需的格式显示它们?几乎没有足够的信息。
  • 另外,这听起来有点像家庭作业。如果是,请告诉我们。
  • 我添加了 ipv6 和数据包标签以使问题更加明显。
  • 我正在从头开始创建内容。所以,它在上面的显示方式是我拥有的格式 - 基本上是人类可读的。

标签: ruby ipv6 packet


【解决方案1】:

你熟悉pack吗?这可能就是您构建数据包所需要的。

【讨论】:

  • 对 pack 有点熟悉,但是当我需要 1 个字节 vs 4 个字节时,诸如 >> [ 64 ].pack("I") => "@\000\000\000" 之类的东西并不真正起作用...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-18
  • 1970-01-01
  • 2014-07-08
  • 2012-03-13
  • 1970-01-01
  • 2012-08-14
  • 1970-01-01
相关资源
最近更新 更多