【问题标题】:Setting TTL on outgoing UDP packets?在传出的 UDP 数据包上设置 TTL?
【发布时间】:2015-09-12 23:41:59
【问题描述】:

如何使用 C/C++ 标准库在 Windows、Mac 和 Linux 上的 C/C++ 中设置 Time-To-Live 套接字选项?它需要在没有 Boost 的情况下工作。 C 或 C++ 都可以。传出 UDP 数据包的 IP 标头修改。没有多播。

【问题讨论】:

    标签: c++ sockets networking udp ip


    【解决方案1】:

    基本上这是通过标准setsockopt 完成的。您需要使用IPPROTO_IP 级别,选项为IP_TTL

    我在 gnu.org 上找不到这个链接,但是(例如..)在 freebsd 上你有 this 手册页。

    用途:

    int ttl = 60; /* max = 255 */
    setsockopt(s, IPPROTO_IP, IP_TTL, &ttl, sizeof(ttl));
    

    【讨论】:

    • 应该在任何兼容平台上使用标准 C 库
    猜你喜欢
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多