[express-ipfilter]

- winston daily log 와 같이 사용할 경우 error 라고 해서 uncaughtException 로그에 남지는 않는다.

- npm install express-ipfilter

- 다른 라우터보다 위에 위치해야 합니다.



var ipfilter = require('express-ipfilter').IpFilter;
var IpDeniedError = require('express-ipfilter').IpDeniedError;

// 차단, 허용할 특정 아이피 목록
var ips = ['192.168.0.10', '192.168.0.11'];

// 범위 사용 예시
// 192.168.0.10 ~ 192.168.0.20 안의 범위와 192.168.0.100 차단 or 허용, 
// var ips = [['192.168.0.10', '192.168.0.20'], '192.168.0.100'];

// ips 목록의 ip들만 허용
app.use(ipfilter(ips, {mode: 'allow'}));

// ips 목록의 ip들 차단
// app.use(ipfilter(ips));

app.use(function(err, req, res, _next) {
    //console.log('Error handler', err);
    res.send('Access Denied');                     // page view 'Access Denied'
    if(err instanceof IpDeniedError){
      res.status(401).end();
    }else{
      res.status(err.status || 500).end();
    }
    // res.render('error', {
    //   message: 'You shall not pass',
    //   error: err
    // });
});

..........

app.get('/', function(req, res){
    res.send('allowed IP');
});


'Programming > Node.js' 카테고리의 다른 글

[Node.js] winston Daily 로그 남기기  (0) 2018.05.21

+ Recent posts