C# BerkeleyPacketFilter,按TCP和端口过滤
使用BerkeleyPacketFilter按TCP和端口进行筛选 从Pcap.net转换教程中的代码时出现问题。需要能够通过TCP过滤数据包并插入端口值。我无法理解BerkeleyPacketFilter语法C# BerkeleyPacketFilter,按TCP和端口过滤,c#,tcp,port,packet-capture,packet-sniffers,C#,Tcp,Port,Packet Capture,Packet Sniffers,使用BerkeleyPacketFilter按TCP和端口进行筛选 从Pcap.net转换教程中的代码时出现问题。需要能够通过TCP过滤数据包并插入端口值。我无法理解BerkeleyPacketFilter语法 //choose port Console.WriteLine("Choose port nr"); string portnr = Console.ReadLine(); int port = Int32.Parse(po
//choose port
Console.WriteLine("Choose port nr");
string portnr = Console.ReadLine();
int port = Int32.Parse(portnr);
// Compile the filter
using (BerkeleyPacketFilter filter = communicator.CreateFilter(port))
{
// Set the filter
communicator.SetFilter(filter);
communicator.CreateFilter内部的语法是什么(如何插入int端口)):
我还做了以下工作:
IpV4Datagram ip = packet.Ethernet.IpV4;
TcpDatagram tcp = ip.Tcp;
这与PcapDotNet.Packets.Transport.TransportDatagram有关如果可以相信,则CreateFilter
方法不将整数作为参数,它将字符串作为参数
这并不奇怪,因为这表明pcap\u compile()
将字符串作为参数,并且表明筛选器是字符串
如果需要与给定TCP端口号匹配的字符串,则该字符串为“TCP端口N”,其中N为端口号。必须使用<代码>端口>代码>,将其转换为字符串,并将其与字符串“TCP端口”连接(与“端口”之后的空白完成),或者只与“TCP端口”连接<代码> PORTNR < /代码>字符串。
请注意,您还必须决不假设
communicator.CreateFilter()
将成功。我没有看到Pcap.Net的任何联机文档,因此我不知道CreateFilter
方法是否会为无效的筛选器表达式引发异常。谢谢!是否还有其他方法代替communicator.CreateFilter()?使用ip、tcp和端口进行过滤的另一种方法?在C中#