WebSocketサーバーに接続されているすべてのクライアントの「実際の」IPアドレスを取得する方法

ヤコブ

したがって、私はnodejsWebソケットサーバーをnginxリバースプロキシの背後に配置しています私のnginx構成は次のようになります:

server {
    listen 80;
    location / {
        proxy_pass ​http://localhost:9898;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

私のWebソケットサーバーアプリケーションコードには、後で取得するためにクライアントのIPアドレスをテーブルに格納するロジックが含まれています。クライアントが接続するときにクライアントのIPアドレスを取得するのに問題はありません。これは、新しい接続ごとにオブジェクトにreq.headers["x-forwarded-for"]アクセスできるため、このようなことを簡単に実行できるためreqです。私の問題は、特定のクライアントのサブセットにのみサーバーブロードキャストを送信する場合は常に、その「転送されたIPアドレス」を取得することです。私がそうするときはいつでもws._socket.remoteAddresswsWebソケットオブジェクトはどこにありますか)、私は期待してIPアドレスを取得するから127.0.0.1です

これは、Webソケットサーバーをホストするために使用している特定のnpmパッケージに関する質問だと思います:https//www.npmjs.com/package/ws

AKX

あなたの質問はあなたがリンクたNPMページで答えられます

サーバーがNGINXのようなプロキシの背後で実行されている場合、デファクトスタンダードはX-Forwarded-Forヘッダーを使用することです。

wss.on('connection', function connection(ws, req) {
  const ip = req.headers['x-forwarded-for'].split(/\s*,\s*/)[0];
});

あなたは、その格納することができip上のwsオブジェクト(実際には、あなたがすることができます多分上書きしws._socket.remoteAddressているとip、その時点であまりにも)。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

デバイスがAndroidでWiFiに接続されているときにセルラーネットワークのIPアドレスを取得する方法

分類Dev

サーバーに接続されているクライアントのIPアドレスを見つける方法

分類Dev

ローカルネットワーク内のNFSサーバーに接続されているクライアントのリストを取得する方法

分類Dev

リモートサーバーポートに接続されているすべてのクライアントを取得します

分類Dev

Rebol3ベースのサーバーに接続しているクライアントのリモートIPアドレスを取得するにはどうすればよいですか?

分類Dev

Javaがサーバーに接続されているすべてのクライアントにメッセージを送信させる方法

分類Dev

共有印刷オブジェクトに接続されているクライアントのサーバーからすべてのIP(またはユーザー名)を取得するにはどうすればよいですか?

分類Dev

AWSELBの背後で実行されているSSHサーバーのSSHクライアントの実際のIPを確認する方法

分類Dev

サーバーで要求しているクライアントのIPアドレスを取得する

分類Dev

ActiveMQブローカーに接続されているすべての永続クライアントのクライアントIDを取得します

分類Dev

xinetdカスタムサービスで接続されたクライアントのIPアドレスを取得する方法

分類Dev

それに接続されているオーバーレイネットワークのドッキングされたプログラムのIPアドレスを渡す方法

分類Dev

Thrift: サーバーに接続されているすべてのクライアントにメッセージを送信します

分類Dev

Websocket Autobahn Pythonクライアント:サーバーとクライアントの証明書を使用してサーバーに接続する方法は?

分類Dev

中央サーバーを介してクライアントサーバーペアとして異なるスレッドで接続された2つのソケットクライアントを接続します

分類Dev

クライアントはローカルホストを使用して同じマシン上のサーバーに接続できますが、IPアドレスまたはホスト名が使用されている場合は接続できません

分類Dev

クライアントはローカルホストを使用して同じマシン上のサーバーに接続できますが、IPアドレスまたはホスト名が使用されている場合は接続できません

分類Dev

クライアントが接続しているサーバーのIPを確認するにはどうすればよいですか?出来ますか?

分類Dev

コンピューターに接続されているデバイスのMACアドレスを探す

分類Dev

openshiftを実行しているConsulサーバーに接続して、localhostで実行されているconsulクライアントに接続します

分類Dev

現在のリクエストを取得する方法接続サーバーのIPアドレス

分類Dev

Androidで、特定のBluetoothデバイスが接続されている場合にマイクをアクティブにするバックグラウンドサービスを実行するにはどうすればよいですか?

分類Dev

GRPCサーバーに接続されているクライアントを検査する方法

分類Dev

リモートデスクトップに接続されているローカルPCのIPアドレスを取得する

分類Dev

AqueductDartサーバーでクライアントリクエストのIPアドレスを取得する方法

分類Dev

IDサーバー4でクライアントのリモートIPアドレスを取得する方法

分類Dev

IPアドレスを持つRESTクライアントを使用してElasticsearchサーバーに接続する方法

分類Dev

パブリックIPアドレスを使用してインターネット経由でサーバーに接続することの安定性?

分類Dev

nginxサーバーで実行されているWebサイトに接続されているクライアントの数を表示するにはどうすればよいですか?

Related 関連記事

  1. 1

    デバイスがAndroidでWiFiに接続されているときにセルラーネットワークのIPアドレスを取得する方法

  2. 2

    サーバーに接続されているクライアントのIPアドレスを見つける方法

  3. 3

    ローカルネットワーク内のNFSサーバーに接続されているクライアントのリストを取得する方法

  4. 4

    リモートサーバーポートに接続されているすべてのクライアントを取得します

  5. 5

    Rebol3ベースのサーバーに接続しているクライアントのリモートIPアドレスを取得するにはどうすればよいですか?

  6. 6

    Javaがサーバーに接続されているすべてのクライアントにメッセージを送信させる方法

  7. 7

    共有印刷オブジェクトに接続されているクライアントのサーバーからすべてのIP(またはユーザー名)を取得するにはどうすればよいですか?

  8. 8

    AWSELBの背後で実行されているSSHサーバーのSSHクライアントの実際のIPを確認する方法

  9. 9

    サーバーで要求しているクライアントのIPアドレスを取得する

  10. 10

    ActiveMQブローカーに接続されているすべての永続クライアントのクライアントIDを取得します

  11. 11

    xinetdカスタムサービスで接続されたクライアントのIPアドレスを取得する方法

  12. 12

    それに接続されているオーバーレイネットワークのドッキングされたプログラムのIPアドレスを渡す方法

  13. 13

    Thrift: サーバーに接続されているすべてのクライアントにメッセージを送信します

  14. 14

    Websocket Autobahn Pythonクライアント:サーバーとクライアントの証明書を使用してサーバーに接続する方法は?

  15. 15

    中央サーバーを介してクライアントサーバーペアとして異なるスレッドで接続された2つのソケットクライアントを接続します

  16. 16

    クライアントはローカルホストを使用して同じマシン上のサーバーに接続できますが、IPアドレスまたはホスト名が使用されている場合は接続できません

  17. 17

    クライアントはローカルホストを使用して同じマシン上のサーバーに接続できますが、IPアドレスまたはホスト名が使用されている場合は接続できません

  18. 18

    クライアントが接続しているサーバーのIPを確認するにはどうすればよいですか?出来ますか?

  19. 19

    コンピューターに接続されているデバイスのMACアドレスを探す

  20. 20

    openshiftを実行しているConsulサーバーに接続して、localhostで実行されているconsulクライアントに接続します

  21. 21

    現在のリクエストを取得する方法接続サーバーのIPアドレス

  22. 22

    Androidで、特定のBluetoothデバイスが接続されている場合にマイクをアクティブにするバックグラウンドサービスを実行するにはどうすればよいですか?

  23. 23

    GRPCサーバーに接続されているクライアントを検査する方法

  24. 24

    リモートデスクトップに接続されているローカルPCのIPアドレスを取得する

  25. 25

    AqueductDartサーバーでクライアントリクエストのIPアドレスを取得する方法

  26. 26

    IDサーバー4でクライアントのリモートIPアドレスを取得する方法

  27. 27

    IPアドレスを持つRESTクライアントを使用してElasticsearchサーバーに接続する方法

  28. 28

    パブリックIPアドレスを使用してインターネット経由でサーバーに接続することの安定性?

  29. 29

    nginxサーバーで実行されているWebサイトに接続されているクライアントの数を表示するにはどうすればよいですか?

ホットタグ

アーカイブ