我有一个 D-Link DGS-1210-10P,带有两个 VLAN(10.104和 192.168 ...... )我在每个网络上都有一个摄像机,每个网络上的计算机上有两个 NIC。
在 D-Link 上关闭 IGMP 后,我可以使用 Microsoft DiscoveryClient 发现两个摄像头,以及一些允许我指定要发送多播消息的 NIC 的自定义端点。打开 IGMP 后,我只能看到 10.104 网络。
foreach (string id in getAdapterIds())
{
DiscoveryClient dc = new DiscoveryClient(new UdpDiscoveryEndpointByNIC(DiscoveryVersion.WSDiscoveryApril2005, id));
dc.FindProgressChanged += _real_FindProgressChanged;
dc.FindAsync();
}
我确实在 Wireshark 中看到了 IGMP 消息(两个来源都是我的计算机,目标是正确的多播地址)
Source Destination Protocol Length Info
10.104.128.37 239.255.255.250 IGMPv2 60 Membership Report Group
192.168.1.1 239.255.255.250 IGMPv2 60 Membership Report Group
我的问题归结为:DiscoveryClient 是否会自动加入 IGMP 组并且应该正常工作?我怀疑我缺少一些基本的 IGMP 理解,或者一些 D-Link 路由器设置。