【发布时间】:2021-04-07 14:26:15
【问题描述】:
我正在 Linux 中打开一个 RAW 套接字并读取所有消息。
recvmsg(mysock, &msg, 0);
我正在遍历那个 msg 缓冲区上的所有 cmsg,但我只得到一个。
for (c = CMSG_FIRSTHDR(&msg); c; c = CMSG_NXTHDR(&msg, c)) {
如何提取它收到的 ifindex?
【问题讨论】:
我正在 Linux 中打开一个 RAW 套接字并读取所有消息。
recvmsg(mysock, &msg, 0);
我正在遍历那个 msg 缓冲区上的所有 cmsg,但我只得到一个。
for (c = CMSG_FIRSTHDR(&msg); c; c = CMSG_NXTHDR(&msg, c)) {
如何提取它收到的 ifindex?
【问题讨论】:
找到了。我必须先设置 IP_PKTINFO 标志:
setsockopt(sock, IPPROTO_IP, IP_PKTINFO, &hold, sizeof(hold));
【讨论】: