このモジュールを使用することをお勧めしますrequest-ip
。これは、リクエスト内の特定のヘッダーを探し、存在しない場合はいくつかのデフォルトにフォールバックするためです。
以下は、リクエストからユーザー IP を決定するために使用する順序です。
X-Client-IP
X-Forwarded-For
ヘッダーは、「クライアント IP、プロキシ 1 IP、プロキシ 2 IP」の形式で複数の IP アドレスを返す場合があるため、最初の IP アドレスを取得します。
X-Real-IP
(nginx プロキシ/FastCGI)
X-Cluster-Client-IP
(ラックスペース LB、リバーベッド スティングレイ)
- #2 の順列:
X-Forwarded
、Forwarded-For
およびForwarded
req.connection.remoteAddress
req.socket.remoteAddress
req.connection.socket.remoteAddress
req.info.remoteAddress
Web サーバーの構成やプロキシ設定、さらには接続の技術 ( HTTP
、ẀebSocket
...)に関係なく、実際のクライアント IP を取得できます。
Express req.ips
(yes, ip s , not req.ip
) プロパティを調べて、リクエストに関する詳細情報を取得することもできます。
req.ips ( http://expressjs.com/en/api.html )
信頼プロキシ設定が false と評価されない場合、このプロパティには、X-Forwarded-For 要求ヘッダーで指定された IP アドレスの配列が含まれます。それ以外の場合、空の配列が含まれます。このヘッダーは、クライアントまたはプロキシによって設定できます。
たとえば、X-Forwarded-For が client, proxy1, proxy2, req.ips の場合、["client", "proxy1", "proxy2"] となり、proxy2 が最も下流になります。