node.js版本的ip2long, long2ip
这段时间用node.js写一个即时通讯服务器,前台要和php配合完成一些显示,平时php存储ip都用ip2long和long2ip函数的,mysql用inet_aton和inet_ntoa,但是node.js没有这样的函数,为了保持前后台的数据格式统一所以自己写了这两个函数.
代码如下:
node.js javascript: ip2long
/**
* ip字符串转换为数值
* @param ipstr ip字符串
* @returns {Number}
*/
exports.ip2long = function(ipstr) {
var ip = 0;
var ipdot = ipstr.split('.').reverse();
var ipis = ipdot.map(function(v, i){
return v * Math.pow(256, i);
});
ipis.forEach(function(v,i){return ip+=v;});
return ip;
};
node.js javascript: long2ip
/**
* ip数值转换为字符串
* @param ip ip数值
* @returns {String}
*/
exports.long2ip = function(ip) {
var ipis = [0,0,0,0]
var ipdots = ipis.map(function(v, i){
var n = Math.pow(256, 3-i);
var ipdot = parseInt(ip / n);
ip = ip % n;
return ipdot;
})
return ipdots.join('.');
};