私はhapijsノードの要求で私のアプリケーションを使用してクライアントのIPアドレスを取得する必要があります...私たちはサーバを稼働させるためにpm2とNginxを使用しています。 .info.addressしかし、サーバーのローカルIPには127.0.0.1が必要ですが、私のアプリケーションを使用しているクライアントのIPアドレスは、例えば:192.xx111 ...要求に応じてクライアントIPアドレスを取得する
答えて
私はいつもクライアントのIPアドレスをこの関数で取得しています。 )
return request.headers['x-forwarded-for'] ||
request.connection.remoteAddress ||
request.socket.remoteAddress ||
request.connection.socket.remoteAddress;
希望します。場合
ごめんなさい@Sparwこれらを試してみたところ、結果は以下の通りです: req.headers ['x-forwarded-for'] => '未定義 ' request.connection.remoteAddress || request.socket.remoteAddress ||エラー: ** 'デバッグ:内部、実装、エラー TypeError:キャッチされていないエラー:未定義の' remoteAddress 'プロパティを読み取ることができません ' ** – sunilsmith
おそらくすべてを置き換える必要があります"req"による "要求"? – Sparw
あなたはnginxのプロキシサーバーの背後のサーバーを実行している場合、あなたは私がHAPIのために同じスタックを実行している
req.info.remoteAddress
私はこの仲間を試しましたが、まだ返されています**未定義**私のハンドラでIPを取得するために私のajaxに余分なヘッダ機能を追加する必要がありますか、Hapi.JsのためにreqのIPを得る特別な方法はあります私がサーフィンした答えは主にexpress.jsのため – sunilsmith
あなたのリクエスト/ヘッダー/接続オブジェクトをコンソール化し、利用可能なすべてのプロパティーを確認することがベストでしょう。要求。infoはhapiで動作しますが、リクエストオブジェクト全体を調べて、なぜ動作していないのかを知りたい場合や、リクエストオブジェクトをここにすべてチェックするために投稿することができます。 –
を使用することができます
他req.headers['x-real-ip']
を使用する必要がありますnginxとPM2のアプリ。同じホスト上のノードアプリケーションにnginxを介して要求をプロキシすると、リモートホストは常に127.0.0.1
になります。これは、nginxが要求を同じホストに転送するためです。
ソリューション:リバースプロキシ(nginxなど)の背後にアプリを実行していても、実際のクライアントIPアドレスを決定する専用のプラグインhapi-geo-locateがあります。
hapi-geo-locateは、さまざまなプロキシとHTTPヘッダーをサポートしているため、アプリを実行しているユーザーのIPを別のプラットフォームに保存して取得する必要があります。
希望に役立ちます!
リバースプロキシ(nginx)の設定を確認して、あなたがそのIPを送信しているかどうか、それをやっているかどうか確認してください。
例えば(nginxのconfの):ここでは
server {
listen 0.0.0.0:80;
server_name [your_domain];
root /webroot/[your_domain or webapp name];
access_log /var/log/nginx/[your_domain or webapp name].log;
location/{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header HOST $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:[port assigned to node];
proxy_redirect off;
}
}
、あなたはヘッダX-Real-IP
を経由してクライアントのIPを取得します。ですから、request
オブジェクトへのアクセス権を持ってHapiJS、中
const ip = request.headers['x-real-ip'] || request.info.remoteAddress;
- 1. Symfony2のIPアドレスに応じてユーザ認証要求を拒否する方法
- 2. 着信要求のIPアドレスを取得する方法SOAP
- 3. Laravel要求IPアドレス
- 4. nginx luaでクライアントのIPアドレスを取得
- 5. jQueryを使用してクライアントIPアドレスを取得する方法
- 6. Laravel - クライアントのIPアドレスを取得する - 常に127.0.0.1を取得する
- 7. クライアントのIPアドレスを取得するには?
- 8. クライアントのIPアドレスを自動的に取得する方法
- 9. クライアントのマシンからIPアドレスを取得するには?
- 10. .netでクライアントのIPアドレスを取得するには?
- 11. 取得IPアドレス
- 12. 取得IPアドレス
- 13. Koajs/nodejs IPアドレス要求を取得する - ローカルホストアドレスのみを返す
- 14. IPアドレスを取得
- 15. Java Play 1.2.4で着信要求のIPアドレスを取得する方法
- 16. クライアントの要求に応じてRailsサーバーで音を再生
- 17. AzureでクライアントのIPアドレスを取得する方法C#?
- 18. socket.ioでクライアントのIPアドレスを取得する方法
- 19. R配管でクライアントのIPアドレスを取得する方法
- 20. blazeDSでクライアントのIPアドレスを取得する方法
- 21. JBossリモートEJBコールでクライアントIPアドレスを取得する方法は?
- 22. クライアントのIPアドレスを取得するWebサービスの場合
- 23. クライアントのIPアドレスを取得する方法
- 24. JavaScriptでクライアントのIPアドレスを取得する方法は?
- 25. クライアント/ユーザのIPアドレスを取得する方法は?
- 26. ALUIポータルゲートウェイ経由でクライアントIPアドレスを取得する
- 27. Javaでクライアントの元のIPアドレスを取得する方法は?
- 28. クライアントのIPアドレスを取得する方法は?
- 29. JSPでクライアントのIPアドレスを取得する
- 30. クライアントのIPアドレスを取得する方法
[どのノード内のユーザーのIPアドレスを決定する]の可能な重複(http://stackoverflow.com/questions/8107856/どのようにユーザーを決定するのかを知るために) – str