1 | function Address(address) {
|
2 | this._str;
|
3 | this._buf;
|
4 |
|
5 | if (typeof address === "string") {
|
6 | this._str = address;
|
7 | this._buf = Address.strToBuf(this._str);
|
8 | }
|
9 | else if (Buffer.isBuffer(address)) {
|
10 | this._buf = address;
|
11 | this._str = Address.bufToStr(this._buf);
|
12 | }
|
13 | else {
|
14 | throw new Error("Address intializer must be string or buffer.");
|
15 | }
|
16 | }
|
17 |
|
18 | Address.prototype.toString = function() {
|
19 | return this._str;
|
20 | }
|
21 |
|
22 | Address.prototype.toBuffer = function() {
|
23 | return this._buf;
|
24 | }
|
25 |
|
26 | Address.strToBuf = function(addressStr) {
|
27 | var b = new Buffer(6);
|
28 | var bytes = addressStr.split('.');
|
29 | for (var i = 0; i < bytes.length; i++) {
|
30 | b.writeUInt8(bytes[i], i);
|
31 | }
|
32 | return b;
|
33 | }
|
34 |
|
35 | Address.bufToStr = function(addressBuf) {
|
36 | var str = "";
|
37 | for (var i = 0; i < addressBuf.length; i++) {
|
38 | str+= addressBuf.readUInt8(i).toString(10);
|
39 | if (i != addressBuf.length-1) {
|
40 | str+=".";
|
41 | }
|
42 | }
|
43 | return str;
|
44 | }
|
45 |
|
46 | module.exports = Address;
|
47 | module.exports.bufToStr = Address.bufToStr;
|
48 | module.exports.strToBuf = Address.strToBuf;
|