34

req.connection.remoteAddress、req.headers['x-forwarded-for']、req.ip、req.ips、そ​​れはどういう意味ですか?

Node.js/Express で私のサイトにリクエストを送信しているクライアント/ユーザー エージェントの IP アドレスを簡単に取得する簡単な方法はありますか? すべてのプロキシのものや、req オブジェクトのすべてのプロパティのすべての違いを理解していません。また、Express の「トラスト プロキシ」オプションが何なのかわかりません。

誰かがこれらすべてのプロパティの違いについて簡単に説明し、クライアントの IP を簡単に取得する方法を教えてもらえますか?

4

5 に答える 5

62

req.ipExpress でクライアントの IP アドレスを取得する簡単な方法です。ここで使用するロジックを確認できます (プロキシ アドレスの配列から最初の項目を取得し、その配列はヘッダーreq.ipsから構築されます) 。x-forwarded-for

于 2013-10-09T08:53:57.727 に答える
3

とてもシンプル

function getClientIP(req){
    return req.headers['x-forwarded-for'] || req.connection.remoteAddress;
}
于 2017-01-24T13:05:17.820 に答える
0

クライアント IP の取得は非常に簡単です。

 var ip = req.headers['x-forwarded-for'] || 
     req.connection.remoteAddress || 
     req.socket.remoteAddress ||
     req.connection.socket.remoteAddress;
     console.log(ip);
于 2015-06-08T18:55:47.697 に答える