クライアント オブジェクトにクライアント IP パラメータが見つかりません。
質問する
64339 次
3 に答える
67
どちらがクライアント (Web ブラウザー) の IP アドレスを提供するのかを把握しようとして少しいじった後、答えは次のとおりです。
ws._socket.remoteAddress
req
または、経由でアクセスできる場合wss.on('connection', (ws, req) => {})
:
req.socket.remoteAddress
たとえば、これを使用して、ユーザーがどこから接続しているかを GeoIP で特定できます。
編集:
Nginx リバース プロキシ (またはその他のリバース プロキシ) の背後で Node を実行している場合は、次を使用する必要がある場合があります。
req.headers['x-forwarded-for'] || req.connection.remoteAddress
セキュリティに関する注意: ノード サーバーがリバース プロキシを介してだけでなく直接利用できる場合は、remoteAddress
信頼する前にを確認することをお勧めしますx-forwarded-for
。リモート アドレスは、リバース プロキシの IP である必要があります。誰かがあなたのサービスに直接電話をかけ、なりすましをする可能性がありますx-forwarded-for
。
于 2013-08-31T23:44:27.927 に答える
26
ソケット オブジェクトのキーを出力すると、次のようになります。
> ws._socket.address()
{ port: 8081,
family: 2,
address: '127.0.0.1' }
> ws._socket.remoteAddress
'74.125.224.194'
> ws._socket.remotePort
41435
私はドキュメントを持っていないので、これがバージョン間でどれだけうまくサポートされているかわかりません:/
于 2013-04-21T01:14:23.710 に答える