【问题标题】:Using JeroMQ over TCP, is there a way to get a sender's IP?通过 TCP 使用 JeroMQ,有没有办法获取发件人的 IP?
【发布时间】:2018-06-04 12:55:30
【问题描述】:

我们的应用程序使用 JeroMQ 0.4.3 在客户端应用程序和 API 之间发送消息。 (使用 ZAuth 的曲线加密)。

我们从代理中的 ROUTER 套接字获取客户端消息(MDP 模式)。

在代理中接收消息时找到发件人 IP 的最佳方法是什么?

在 ZeroMQ 中,似乎可以使用 ZMQ_SRCFD 消息选项和 getpeername() 但我还没有找到将其转换为 JeroMQ 的方法。

【问题讨论】:

    标签: java tcp zeromq jeromq


    【解决方案1】:

    最近的 ZeroMQ API 确实定义了消息可能携带的 ZMQ_SRCFD 属性。

    事实 A)
    主要是不确定,远程系统使用什么 ZeroMQ API 版本(2.x ~ 3.x ~ 4.2.2 ~ ? 截至 EoY-2017 ),除非确实有些严格和入侵-强大的版本执行政策已经到位并处于活跃状态。

    事实 B)
    最近的 ZeroMQ API 定义了 tcp:// 传输类:

    ZMQ_SRCFD
    返回从中读取消息的套接字的文件描述符。这允许应用程序通过 getpeername(2) 检索远程端点。请注意,相应的套接字可能已经关闭,甚至重用。目前仅针对 TCP 套接字实现。

    事实 C)
    任何语言包装器或绑定,包括一个人首选的 JeroMQ 或其他,都必须自己覆盖所选范围(无论是完整的还是部分的范围覆盖)。

    如果在某些特定语言端口/绑定版本中缺少某个功能,最好的下一步是评估扩展已发布源代码的可行性,以便通过(重新)实现语言端口来涵盖希望的功能/binding 以便最好地满足 ZeroMQ 已发布规范指定的所需 API 功能。

    事实 D)
    如果根据 B) 中表达的主要不确定性, C) 变得不可行或不完整,人们仍然可以根据任何合适的安全等级继续实施自己的高级 IP 地址节点-(重新)-发现策略-关注,甚至从一个{天真的自我声明|两步IP验证| ... |一种无需信任的 IP 验证 } 协议,如果需要的话。

    【讨论】:

      猜你喜欢
      • 2018-03-29
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      • 2019-05-20
      • 1970-01-01
      • 2021-02-10
      • 1970-01-01
      相关资源
      最近更新 更多