コントローラー内から特定のリクエストの IP アドレスを特定するにはどうすればよいでしょうか? たとえば (Express の場合):
app.post('/get/ip/address', function (req, res) {
// need access to IP address here
})
ベストアンサー1
あなたのrequest
オブジェクトには、socket
、 これはnet.Socket
オブジェクト。net.Socket
オブジェクトにはプロパティがありますremoteAddress
したがって、次の呼び出しで IP を取得できるはずです。
request.socket.remoteAddress
(ノードバージョンが13未満の場合は、現在は非推奨のrequest.connection.remoteAddress
)
編集
@juandがコメントで指摘しているように、サーバーがプロキシの背後にある場合、リモートIPを取得する正しい方法は次のとおりです。request.headers['x-forwarded-for']
編集2
express
Node.js で使用する場合:
を設定するとapp.set('trust proxy', true)
、req.ip
プロキシの背後であっても実際の IP アドレスが返されます。詳細についてはドキュメントを確認してください