在Linux上获取多播源IP地址

在Linux上获取多播源IP地址,linux,networking,network-programming,multicast,Linux,Networking,Network Programming,Multicast,我正在使用at struct sockaddr\u in来接收从另一台机器发送的多播数据。当我使用inet_ntop打印源地址时,它会给我发送数据的PC的源地址 我想知道是否有办法获取数据“发送到”的多播地址?使用setsockopt(2)在接收套接字上设置IP\u PKTINFO选项(请参见IP(7))。然后使用recvmsg(2)收集传入的数据报,其msg参数的msg\u控件和msg\u控件字段引用可以捕获数据报目标地址的缓冲区 Linux以外的系统可能通过BSDIP\u RECVDSTAD

我正在使用at struct sockaddr\u in来接收从另一台机器发送的多播数据。当我使用inet_ntop打印源地址时,它会给我发送数据的PC的源地址

我想知道是否有办法获取数据“发送到”的多播地址?

使用
setsockopt(2)
在接收套接字上设置
IP\u PKTINFO
选项(请参见
IP(7)
)。然后使用
recvmsg(2)
收集传入的数据报,其
msg
参数的
msg\u控件和
msg\u控件字段引用可以捕获数据报目标地址的缓冲区


Linux以外的系统可能通过BSD
IP\u RECVDSTADDR
选项提供此功能。

查看目标地址字段并使用inet\u ntop?是的,我解决了这个问题,感谢更新