正在设置传出UDP数据包的TTL

Setting TTL on outgoing UDP packets?

本文关键字:数据包 TTL UDP 设置      更新时间:2023-10-16

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

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

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

用途:

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