2010-11-23 38 views
1

Je crée une variable qui est la charge utile d'un paquet IPv6, et j'ai besoin d'avoir plusieurs formats de données concaténés, et j'ai quelques problèmes.Ruby créer des données binaires à partir de données lisibles par l'utilisateur

Plus précisément, j'ai:

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 

Nouveau à rubis - quoi que ce soit vous aidera.

+0

Recevez-vous les valeurs ci-dessus au format ASCII et devez-vous les emballer? Ou les valeurs que vous affichez sont-elles binaires et vous les affichez dans le format que vous voulez? Il n'y a pas assez d'informations. –

+0

Aussi, cela ressemble étrangement à un exercice de devoirs. Si c'est le cas, faites-le nous savoir. –

+0

J'ai ajouté des tags ipv6 et paquets pour rendre la question plus visible. –

Répondre

1

Connaissez-vous pack? C'est probablement ce dont vous aurez besoin pour construire vos paquets.

+0

un peu familier avec le pack, mais des choses comme: >> [64] .pack ("I") => "@ \ 000 \ 000 \ 000" ne fonctionne pas vraiment quand j'ai besoin de 1 octet vs 4 ... – wuntee