nodejs获取客户机ip

/**
 * Created by chaozhou on 2015/11/24.
 */
var getIp = function(req){
    var ipStr = req.headers['x-forwarded-for'];        //F5
    if(ipStr){
        var ipArray = ipStr.split(",");
        if(ipArray.length > 1){             //如果获取到的为ip数组(用手机访问时,如果机房双线,可能获取到的为数组
            for(var i = 0; i < ipArray.length; i++){
                var ipNumArray = ipArray[i].split(".");
                var tmp = ipNumArray[0] + "." + ipNumArray[1];
                if(tmp == "192.168" || (ipNumArray[0] == "172" && ipNumArray[1] >= 16 && ipNumArray[1] <= 32) || ipNumArray[0] == "10"){    //排除特殊区间ip
                    continue;
                }
                return ipArray[i];
            }
        }
        return ipArray[0];
    }else{          //F5获取不到时
        return req.ip.substring(req.ip.lastIndexOf(":") + 1);
    }
};

exports.getIp = getIp;

 

转载于:https://my.oschina.net/caiya928/blog/784096

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值