2017-12-21 13 views
2

私たちのアプリケーションは、JeroMQ 0.4.3を使ってクライアントアプリケーションとAPIの間でメッセージを送信しています。 (ZAuthによるカーブ暗号化を使用)。JeroMQ over TCPを使用すると、送信者のIPを取得する方法はありますか?

私たちはブローカー(MDPパターン)のROUTERソケットからクライアントメッセージを受け取ります。

ブローカでメッセージを受信したときに送信者のIPアドレスを見つけるにはどうすればよいですか? ZeroMQで

ZMQ_SRCFDメッセージオプションとgetpeername()を使用して可能であるかもしれないようだが、私はJeroMQにそれを翻訳する方法を発見していません。

答えて

1

最近のZeroMQ APIは実際にメッセージが運ぶ可能性があるZMQ_SRCFDのプロパティを定義しています。

ファクトA)
1は、主に確認してくださいことはありません、何ZeroMQのAPIバージョン(2.xでは〜3.xの〜EOY-2017のように4.2.2〜?)しない限り、リモートシステムの利用を行います実際には厳格で侵入に強いバージョン管理ポリシーが導入され、活発になっています。

ファクトB)
最近ZeroMQのAPIは、tcp://輸送クラスは、この定義:

ZMQ_SRCFD
をメッセージが読み出されたソケットのファイル記述子を返します。これにより、アプリケーションはgetpeername(2)経由でリモートエンドポイントを取得できます。各ソケットはすでにが閉じている可能性があります。があります。が再利用されています。もあります。現在はTCPソケット用にのみ実装されています。 1の好ましいJeroMQまたは他含む

ファクトC)
任意の言語ラッパーまたは結合は、それ自体の上に(それが完全または部分的な範囲カバレッジである)選択された範囲をカバーしなければなりません。

特定の言語のポート/バインディングバージョンで機能が不足している場合は、公開されたソースコードを拡張する可能性を評価して、その言語を(再)実装して希望の機能をカバーしますZeroMQ公開仕様書で指定された目的のAPI機能に最も適合するように、ポート/バインディングを設定します。 C)が実行不可能またはB下で発現主不確かさ)当たりとして不完全取得

ファクトD)の場合において
は、一方が依然としてむしろ自分の、ハイレベルIPアドレスリンパ節転移を実現するために進むことができる(再)適切なグレードのセキュリティ上の懸念に基づいて、{素朴な自己申告| 2ステップのIP検証| ... |信頼できないIP検証}プロトコルを必要とする場合に使用します。

関連する問題