WinPcapDeviceList devices = WinPcapDeviceList.Instance;
获取所有网络设备
inPcapDevice device = devices[0];
得到第一个网络设备
device.OnPacketArrival += new SharpPcap.PacketArrivalEventHandler(device_OnPacketArrival);
收发包时触发的事件
device.Open(DeviceMode.Promiscuous, 1000);
device.Filter = “port 80”;
简单设置
device.StartCapture();
启动抓包
device.StopCapture();
停止抓包
device.Close();
关闭

触发事件
private void device_OnPacketArrival(object sender, CaptureEventArgs packet)
{

。。。。

}
得到是CaptureEventArgs
RawCapture rc = packet1.Packet;
得到RawCapture
Packet p = Packet.ParsePacket(rc.LinkLayerType, rc.Data);
得到Packet
TcpPacket tcp = TcpPacket.GetEncapsulated(p);
得到TcpPacket
(IpPacket)(tcp.ParentPacket)).SourceAddress
可以得到源ip,其他类推
System.Text.Encoding.UTF8.GetString(tcp.PayloadData);
得到tcp数据

发表评论

邮箱地址不会被公开。 必填项已用*标注