38 lines
922 B
JavaScript
38 lines
922 B
JavaScript
'use strict';
|
|
|
|
exports = module.exports = {
|
|
ipFromInt,
|
|
intFromIp
|
|
};
|
|
|
|
const assert = require('assert');
|
|
|
|
// this code is used in migrations - 20201120212726-apps-add-containerIp.js
|
|
function intFromIp(address) {
|
|
assert.strictEqual(typeof address, 'string');
|
|
|
|
const parts = address.split('.');
|
|
|
|
if (parts.length !== 4) return null;
|
|
|
|
return (parseInt(parts[0], 10) << (8*3)) & 0xFF000000 |
|
|
(parseInt(parts[1], 10) << (8*2)) & 0x00FF0000 |
|
|
(parseInt(parts[2], 10) << (8*1)) & 0x0000FF00 |
|
|
(parseInt(parts[3], 10) << (8*0)) & 0x000000FF;
|
|
}
|
|
|
|
// this code is used in migrations - 20201120212726-apps-add-containerIp.js
|
|
function ipFromInt(input) {
|
|
assert.strictEqual(typeof input, 'number');
|
|
|
|
let output = [];
|
|
|
|
for (let i = 3; i >= 0; --i) {
|
|
const octet = (input >> (i*8)) & 0x000000FF;
|
|
output.push(octet);
|
|
}
|
|
|
|
return output.join('.');
|
|
}
|
|
|