diff --git a/README.md b/README.md index b169252..ed920fd 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Playing around with parsing dns packets in Javascript. ## ToDo -- [ ] Import packet string into Arraybuffer +- [x] Import packet string into Arraybuffer - [ ] Parse the headers into a Javascript object - [ ] Test/Fix browser JS compatibility diff --git a/data b/data new file mode 100644 index 0000000..a9bf252 Binary files /dev/null and b/data differ diff --git a/encoded b/encoded new file mode 100644 index 0000000..79da4c0 --- /dev/null +++ b/encoded @@ -0,0 +1,3 @@ +1MOyoQIABAAAAAAAAAAAAAAABAABAAAAKPfFWWMZCwBRAAAAUQAAAExg3kp+6eSzGAoxpggARQAA +Q66CQABAEXgXCgAAEAoAAAG90gA1AC+qDJSEAQAAAQAAAAAAAAphc3NldHMtY2RuBmdpdGh1YgNj +b20AAAEAAQ== diff --git a/index.js b/index.js new file mode 100644 index 0000000..2d3c426 --- /dev/null +++ b/index.js @@ -0,0 +1,24 @@ +if(typeof(atob) === 'undefined') { + var atob = require("atob"); +} +(function(){ + 'use strict'; + + var encodedPacket = "1MOyoQIABAAAAAAAAAAAAAAABAABAAAAKPfFWWMZCwBRAAAAUQAAAExg3kp+6eSzGAoxpggARQAAQ66CQABAEXgXCgAAEAoAAAG90gA1AC+qDJSEAQAAAQAAAAAAAAphc3NldHMtY2RuBmdpdGh1YgNjb20AAAEAAQ==" + var packet = atob(encodedPacket); + + console.log(packet.length); + + var buffer = new ArrayBuffer(packet.length); + + var view = new DataView(buffer) + + for(var i = 0; i < packet.length; ++i) { + view.setUint8(i, packet.charCodeAt(i), true); + } + + for(i = 0; i < packet.length; ++i) { + console.log(view.getUint8(i).toString(16)); + } + +})();