C# 如何使用sharppcap和npcap监控windows环回适配器?

C# 如何使用sharppcap和npcap监控windows环回适配器?,c#,winpcap,sharppcap,npcap,C#,Winpcap,Sharppcap,Npcap,我安装了npcap驱动程序,因为我想监视windows环回适配器。但是,环回适配器不在SharpPcap CaptureDeviceList中 我在Wireshark中看到了环回适配器,Wireshark能够监视环回适配器 我应该如何使用SharpPcap监控环回适配器?我已经帮助您在他们的GitHub repo中创建了一个问题: 请等待他们的回答 更新: 我安装了最新的Npcap 0.80,选中了Install Npcap in WinPcap API compatible Mode选项,并在

我安装了npcap驱动程序,因为我想监视windows环回适配器。但是,环回适配器不在SharpPcap CaptureDeviceList中

我在Wireshark中看到了环回适配器,Wireshark能够监视环回适配器


我应该如何使用SharpPcap监控环回适配器?

我已经帮助您在他们的GitHub repo中创建了一个问题:

请等待他们的回答

更新: 我安装了最新的Npcap 0.80,选中了
Install Npcap in WinPcap API compatible Mode
选项,并在SharpPcap repo中运行了
Example01.IfList
示例,输出为:

SharpPcap 4.2.0.0, Example1.IfList.cs

The following devices are available on this machine:
----------------------------------------------------

interface: Name: rpcap://\Device\NPF_{9ADACD44-ECFF-45E2-BD5E-3491DEBA711F}
Description: Network adapter 'NdisWan Adapter' on local host
Flags: 0



interface: Name: rpcap://\Device\NPF_{8A300A14-CA5A-4A3C-B52B-7516661B4CDA}
Description: Network adapter 'NdisWan Adapter' on local host
Flags: 0



interface: Name: rpcap://\Device\NPF_{44DB6B7A-661D-4FA3-925E-6287EA48D3F6}
Description: Network adapter 'NdisWan Adapter' on local host
Flags: 0



interface: Name: rpcap://\Device\NPF_{F0353155-69D0-4611-AB2A-EE864BE0ADD9}
FriendlyName: Local Area Connection* 19
GatewayAddress: 0.0.0.0
Description: Network adapter 'Microsoft' on local host
Addresses:
Addr:      fe80::cd59:f5d:81cb:989d
Netmask:
Broadaddr:

Addresses:
Addr:      fe80::cd59:f5d:81cb:989d
Netmask:
Broadaddr:

Addresses:
Addr:      HW addr: E094678FFF3F

Flags: 0



interface: Name: rpcap://\Device\NPF_{385F30D0-9166-45D3-BBC6-F1D9C5300AF9}
FriendlyName: Wi-Fi
GatewayAddress: 192.168.0.1
Description: Network adapter 'Microsoft' on local host
Addresses:
Addr:      fe80::eddc:63ca:cf19:aecd
Netmask:
Broadaddr:

Addresses:
Addr:      192.168.0.109
Netmask:   255.255.255.0
Broadaddr: 0.0.0.0

Addresses:
Addr:      HW addr: E094678FFF3E

Flags: 0



interface: Name: rpcap://\Device\NPF_{1E6769B9-ED4A-454D-A921-EECDA220ADA1}
FriendlyName: Npcap Loopback Adapter
GatewayAddress: 0.0.0.0
Description: Network adapter 'MS NDIS 6.0 LoopBack Driver' on local host
Addresses:
Addr:      fe80::b1cb:57f6:4ebc:6359
Netmask:
Broadaddr:

Addresses:
Addr:      0.0.0.0
Netmask:   255.0.0.0
Broadaddr: 255.255.255.255

Addresses:
Addr:      HW addr: 02004C4F4F50

Flags: 1



Hit 'Enter' to exit...
很明显,最后一个适配器是
Npcap环回适配器。我不知道为什么用户不能使用SharpPcap监控Npcap环回适配器。我会在Stackoverflow中回复他的反馈

我可以想到两个可能的原因:

  • 安装Npcap时,用户不选择
    支持环回流量(“将创建Npcap环回适配器)
    选项
  • 用户也安装了WinPcap,并且安装Npcap时未选中
    在WinPcap API兼容模式下安装Npcap
    选项。这样,SharpPcap只能识别WinPcap并使用原始WinPcap DLL,而原始WinPcap DLL根本不支持
    Npcap环回适配器
  • 我的建议是:

  • 卸载WinPcap(如果已安装)
  • 安装最新的Npcap 0.80,支持环回通信(“将创建Npcap环回适配器”)
  • 在WinPcap API兼容模式下安装Npcap
    选项均选中
    现在,用户应该能够通过SharpPcap接口查看
    Npcap环回适配器。

    不幸的是,Winpcap无法捕获环回数据包,因为这些数据包没有绑定到任何adapter@Ksv3n:你说得对,WinPcap做不到。但是Npcap可以。@Jeroenmoster:Ty,很高兴知道我按照建议做了,在重新安装Npcap之后,我确实在SharpPcap中看到了环回适配器。我认为与第一次安装Npcap不同的是,我现在打开了“WinPCAPAPI兼容模式”。但是,当我现在运行SharpPcap Example6时,在第86行出现异常“LinkLayer of Null未实现”。PacketDotNet.Packet.ParsePacket引发此异常,因为e.Packet.LinkLayerType==null。我试图将ParsePacket的第一个(LinkLayer)参数更改为Loop、Ethernet和Raw,但这些都不起作用(Ethernet给出空TCPPACKET,其他人给出异常)。LinkLayer异常也是SharpPcap的一个bug。我也向他们报告了。在他们修复之前,您有一个临时解决方案:首先卸载Npcap。然后重新安装Npcap,您可以看到
    将DLT_NULL用作环回接口的链路层协议,而不是DLT_EN10MB
    选项已选中且为灰色(无法更改)。现在请取消选中
    支持环回流量(“将创建Npcap环回适配器)
    选项,然后再次选中。您将发现DLT_NULL选项现在可以更改。取消选中它并安装。(所以环回选项被选中,DLT_NULL选项被取消选中)现在Npcap将在Npcap环回适配器上提供以太网数据包,SharpPcap应该可以工作。