【问题标题】:How can I call getsockopt in Java to get SO_ORIGINAL_DST如何在 Java 中调用 getsockopt 以获取 SO_ORIGINAL_DST
【发布时间】:2012-03-26 05:16:14
【问题描述】:

有谁知道是否有一个现有的库可以让我调用 getsockopt 以获取 iptables 通过我的 Java 应用程序重新路由的套接字的目标 IP?

Here's a similar question 在未答复的 Netty 邮件列表中。

c 中的调用类似于:

getsockopt(ctx->client.fd, SOL_IP, 
    SO_ORIGINAL_DST, &SANY_ADDR(addr), &SANY_LEN(addr))

也欢迎提供如何使用 JNI 执行此操作的示例。

【问题讨论】:

    标签: java getsockopt


    【解决方案1】:

    你不能在 Java 中做到这一点。你可以完全按照你写的那样在 JNI 中做,如果你能得到套接字 FD,它在 SocketSocketImpl 中。

    【讨论】:

    • @downvoter 如果您认为它可以在没有 JNI 的 Java 中完成,请与我们分享您的解决方案,以便对其进行评论、投票等。
    【解决方案2】:

    你不能在 Java 中做到这一点。但是,您可以添加存储 original_dst 的请求标头参数。因此,您可以在需要时从 http 标头中使用它。

    【讨论】:

      猜你喜欢
      • 2012-07-10
      • 2012-07-03
      • 2010-12-14
      • 2018-06-24
      • 1970-01-01
      • 1970-01-01
      • 2019-09-10
      • 1970-01-01
      • 2017-08-21
      相关资源
      最近更新 更多