2016-04-13 4 views
-2

現在、私のsocket.ioチャットアプリは、1人のipで1人しか許可していません。つまり、同じ家庭やネット内の2人がチャットを使いたい場合、そのうちの1人しかできません。node/socket.ioを使用しているときにプライベートIPを調べますか?

私はすでに知っている公開IP以外に、ユーザーが持つプライベートIPを知る方法はありますか?

+0

私は質問が妥当であると見て、下降声の理由を感謝します。 – jason

+0

おそらくそれらはすべて単一のゲートウェイを経由して来るでしょう。クライアントでコードを実行していないと、私は彼らがいるマシンのIPを把握するのが難しいと思います。それは...あなたのユーザーは仮想マシン環境では?あなたはそのシナリオでホストIPを要求していますか?私はあなたに投票したことはありませんでしたが、あなたのニーズについてもっと明白になり、あなたが持っているコードを投稿することができます。 – akaphenom

答えて

0

チャットアプリケーションがブラウザで実行されるJavaScriptであると仮定すると、"いいえ"は、プライベートIPアドレスがエンドユーザーのものであることをサーバーが知る方法はありません。チャットアプリがネイティブアプリの場合、ネイティブチャットアプリはローカルプライベートIPアドレスを取得してサーバーに送信する可能性があります。しかし、それはネイティブコードプラグインなしのブラウズからはできません。

ブラウザはJavascriptでプライベートIPアドレスを取得する方法を提供していないため、チャットアプリがサーバーに送信する方法はありません。そして、サーバがプライベートIPアドレスを単独で知る方法はありません。

クッキーを使用すると、同じブラウザで複数のチャットウィンドウを同時に開くことができます(最初の接続をクッキーしてから、同じクッキーで他の着信接続を探します)。しかし、あなたはそのスキームを使用して複数のブラウザを防ぐことはできません。

これに対処する通常の方法は、アカウントを作成してそのアカウントにログインし、アカウントごとに1回のログインのみを実施し、一意の電子メールアドレスを要求するか、アカウントごとにクレジットカード番号を確認して、アカウントのもちろん、複数の電子メールボックスや複数のクレジットカードもこれにあたりますが、多くを止めて大規模な乱用を防ぐには十分な障害物です。一般的には、サービスを設計する必要があります。誰かがこれを行うと、それは率直にも問題ではありません。

関連する問題