加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用SharpPcap和Packet.Net发送我自己的ARP数据包

发布时间:2020-12-15 08:41:15 所属栏目:百科 来源:网络整理
导读:到目前为止,我尝试使用SharpPcap发送我使用Packet.Net创建的ARP数据包失败.问题是即使我使用device.SendPacket发送数据包它实际上没有被发送,我不知道为什么. 这是我的代码: ARPPacket arpPacket = new ARPPacket(ARPOperation.Request,PhysicalAddress.Par
到目前为止,我尝试使用SharpPcap发送我使用Packet.Net创建的ARP数据包失败.问题是即使我使用device.SendPacket发送数据包它实际上没有被发送,我不知道为什么.

这是我的代码:

ARPPacket arpPacket = new ARPPacket(ARPOperation.Request,PhysicalAddress.Parse("000000000000"),targetIpAddress,device.Interface.MacAddress,myIpAddress);
EthernetPacket ethPacket = new EthernetPacket(device.Interface.MacAddress,PhysicalAddress.Parse("FFFFFFFFFFFF"),EthernetPacketType.Arp);
ethPacket.PayloadPacket = arpPacket;
device.Open();
device.SendPacket(ethPacket);
device.Close();

顺便说一句,重要的是我发送自己的ARP数据包,而不仅仅是使用SharpPcap ARP类.

解决方法

public static void ARP(IPAddress ipAddress,LivePcapDevice device)
{
if (ipAddress == null )
throw new Exception("ARP IP address Cannot be null");
var ethernetPacket = new PacketDotNet.EthernetPacket(device.Addresses[1].Addr.hardwareAddress,PhysicalAddress.Parse("FF-FF-FF-FF-FF-FF"),PacketDotNet.EthernetPacketType.Arp);

var arpPacket = new PacketDotNet.ARPPacket(PacketDotNet.ARPOperation.Request,PhysicalAddress.Parse("00-00-00-00-00-00"),ipAddress,device.Addresses[1].Addr.hardwareAddress,device.Addresses[0].Addr.ipAddress );
ethernetPacket.PayloadPacket = arpPacket;

device.SendPacket(ethernetPacket);
}

尝试此功能,来自:http://stolenpackets.net/?p=29

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读