在Linux上获取多播源IP地址
我正在使用at struct sockaddr\u in来接收从另一台机器发送的多播数据。当我使用inet_ntop打印源地址时,它会给我发送数据的PC的源地址 我想知道是否有办法获取数据“发送到”的多播地址?使用在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
setsockopt(2)
在接收套接字上设置IP\u PKTINFO
选项(请参见IP(7)
)。然后使用recvmsg(2)
收集传入的数据报,其msg
参数的msg\u控件和msg\u控件字段引用可以捕获数据报目标地址的缓冲区
Linux以外的系统可能通过BSDIP\u RECVDSTADDR
选项提供此功能。查看目标地址字段并使用inet\u ntop?是的,我解决了这个问题,感谢更新