@heroku/socksv5
Version:
SOCKS protocol version 5 server and client implementations for node.js
34 lines (30 loc) • 765 B
JavaScript
var net = require('net'),
Address6 = require('ip-address').Address6;
exports.ipbytes = function(str) {
var type = net.isIP(str),
nums,
bytes,
i;
if (type === 4) {
nums = str.split('.', 4);
bytes = new Array(4);
for (i = 0; i < 4; ++i) {
if (isNaN(bytes[i] = +nums[i]))
throw new Error('Error parsing IP: ' + str);
}
} else if (type === 6) {
var addr = new Address6(str),
b = 0,
group;
if (!addr.valid)
throw new Error('Error parsing IP: ' + str);
nums = addr.parsedAddress;
bytes = new Array(16);
for (i = 0; i < 8; ++i, b += 2) {
group = parseInt(nums[i], 16);
bytes[b] = group >>> 8;
bytes[b + 1] = group & 0xFF;
}
}
return bytes;
};