node.js版本的ip2long, long2ip

2012-04-12 13:19  4079人阅读  评论 (0)
Tags: nodejs

这段时间用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('.');
};
豫ICP备09035262号-1