设置发送的UDP数据包的TTL?

3

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

1个回答

12
基本上,这可以通过标准的setsockopt完成。您需要使用IPPROTO_IP级别,选项是IP_TTL
我在gnu.org上找不到相关链接,但(例如...)在freebsd上,您可以查看手册页面。
使用:
int ttl = 60; /* max = 255 */
setsockopt(s, IPPROTO_IP, IP_TTL, &ttl, sizeof(ttl));

应该与标准C库兼容,在任何兼容的平台上都能正常工作。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接