在传出UDP数据包上设置TTL?

时间:2015-06-26 06:07:36

标签: c++ sockets networking udp ip

如何使用C / C ++标准库在Windows,Mac和Linux上的C / C ++中设置生存时间套接字选项?它需要在没有Boost的情况下工作。无论是C还是C ++都可以。传出UDP数据包的IP头修改。没有多播。

1 个答案:

答案 0 :(得分:5)

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

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

使用:

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