如何使用C#发送原始以太网数据包?

Sai*_*int 28 .net c# network-programming raw-ethernet windows-7

有没有办法通过C#将原始数据包以太网发送到其他主机?在Windows 7中,如果它有所不同.

Nic*_*nko 20

根据Saint_pl的建议:

我发现可能更好的解决方案 - 类似于SharpPcap.它是Pcap.Net - WinPcap的.NET包装器.现在我可以随心所欲地修改我的数据包了.


我有一些资源可能对您有所帮助.我不尝试在Windows 7中使用该解决方案,但它可能包含一些很好的信息.

CodeProject上的原始以太网数据包操作镜像

本文的目的是解释如何在Microsoft平台上使用C#发送原始以太网数据包.原始以太网数据包是发送到物理线路的完整第2层网络帧.发送这样的帧允许您操作目标和源MAC地址以及第3层协议字段.

还有一些关于原始套接字的信息(以防万一你也有趣):

客户端(和服务器)套接字通信 看一下整章,但这里是关键部分:

不发送数据包但可能很有趣:C#中的网络嗅探器,SharpPcap - 用于.NET的数据包捕获框架

  • 我发现可能更好的解决方案 - 类似于SharpPcap.这是http://pcapdotnet.codeplex.com/ - WinPcap的.NET包装器.现在我可以随心所欲地修改我的数据包了.Thanx :) (2认同)