nodejs expressはクライアントの実際のipとドメイン名を取得してmongodbに保存します.

1144 ワード

2018年1月15日 Altabaのブログを見てください.
本人は開発中に、nodejs+express+を利用する必要があります. mongodbはデータを保存します.データは取得要求者の実際のipとドメイン名を含みます.まだMongoDBを遊んだことがないです.nodejsプロジェクトを開発したことがない私はプロジェクトの需要を実現するために、自分一人でドラムを叩いています.その中の苦労は小さい会社のプログラマだけが理解できるかもしれません. expressフレームは、実際のクライアントipとドメイン名を取得する.
1:クライアントのリアルIPを取得する
let getClientIp = function (req) {
    return req.headers['x-forwarded-for'] ||
        req.connection.remoteAddress ||
        req.socket.remoteAddress ||
        req.connection.socket.remoteAddress || '';
};

console.log(getClientIp(req));
let ip = getClientIp(req).match(/\d+.\d+.\d+.\d+/);
console.log(ip);
ip = ip ? ip.join('.') : null;
console.log(ip);
2:クライアントの取得
ドメイン名
let domain = req.headers['referer'].match(/^(\w+:\/\/)?([^\/]+)/i);
domain = domain ? domain[2].split(':')[0].split('.').slice(-2).join('.') : null;
注意点:クライアントのipを取得する古いバージョンがあります.
req.headers['X-real-IP']方法は、取得できない場合もあれば、サポートしない場合もあります.
ip取得方法に追加しないでください.この一週間で私が転んでしまいました.
3:もし私が開発したnodejs+express+を知りたい人がいたら mongodbデータキャプチャの項目は、コメントを覚えてメールを残してください.