gpt4 book ai didi

c# - 窥探 IGMP 流量

转载 作者:行者123 更新时间:2023-12-03 12:06:25 27 4
gpt4 key购买 nike

我建立了一个库来做 IGMP 的东西。现在,愚蠢的是,我的图书馆还进行了存在监控以确保其他人仍然是该组的一部分。

IGMP 在较低级别做完全相同的事情。分开消息,轮询路由器它仍然是同一组的一部分,整个事情。我刚刚重复了所有相同的工作,它可能没有那么健壮。

如果我可以利用这些数据包,我可以让一切变得更清洁(而且我不会重新发明轮子)。

任何人都有这样做的经验吗?也许创建某种疯狂的套接字?我不想为此使用 libpcap。我认为语言并不重要,只要可以在 Windows/Linux 上使用 Sockets

最佳答案

好吧,找到方法了。它现在 super 脏,因为我必须手动提取我需要的信息,但这本质上是在接口(interface)上提取 IGMP 数据的方式(请注意,您需要具有管理员权限才能提取原始数据):

var buffer = new byte[65536];
var s = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Igmp); // filter out non IGMP
byte[] one = BitConverter.GetBytes(1);
s.Bind(new IPEndPoint(IPAddress.Parse("192.168.1.148"), 0)); // Which interface to listen on
s.IOControl(IOControlCode.ReceiveAll, one, one); // enter promiscuous mode
s.Recieve(buffer); // get yourself some data (BeginRecieve didn't seem to work here)

然后用所述缓冲区做一些事情。如果你戳wireshark,你可以看到数据包分解

关于c# - 窥探 IGMP 流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7760116/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com