jNetPcap如果来自特定IP地址,则丢弃数据包

时间:2014-11-25 14:57:00

标签: packets jnetpcap

我正在尝试过滤数据包并在表达式与情况匹配时丢弃。我的意思是说,如果数据包来自192.168.1.100,它不应该传递到目的地(即192.168.1.119)。

<pre>PcapBpfProgram program = new PcapBpfProgram();
String expression = "host 192.168.1.100";
int optimize = 0;         
int netmask = 0xFFFFFF00; 

if (pcap.compile(program, expression, optimize, netmask) != Pcap.OK
{                                                  
   System.err.println(pcap.getErr());
   return;
}                               
if (pcap.setFilter(program) != Pcap.OK)
{                                           
 System.err.println(pcap.getErr()); 
 return;        
}</pre>

在我的CASE中,主机为192.168.1.100,因此 Pcap.OK 返回true。但数据包仍在传输到目的地。如何阻止该数据包传输???

TIA

1 个答案:

答案 0 :(得分:0)

我最近构建了一个数据包嗅探器,将特定的RTP数据包重定向到不同的路径,我想这正是你需要做的。您可以从我的GitHub存储库中获取“Lizardous”文件夹下的完整代码:

https://github.com/Longhitano/main_projects/blob/master/Lizardous/src/j1/lizardous.java