请教这个利用JPCAP抓包的按钮监听。程序已写完且抓包成功,但有两个小问题! tcpudp通讯 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 估计程序有点乱。我给大家注释以下,其实很短~startfca.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {/////以上是监听开始的代码,套路。 try { NetworkInterface[] devices=JpcapCaptor.getDeviceList(); JpcapCaptor pcatch=JpcapCaptor.openDevice(devices[0],65535,true,20); pcatch.setFilter("ip",true); Packet pfca; IPPacket ipfca; String typefca;///////////////以上都是变量声明 for(int i=0;i<devices.length;i++) { System.out.println(i+": "+devices[i].name+"("+devices[i].description+")"); System.out.println("Datalink: "+devices[i].datalink_name+"("+devices[i].datalink_description+")"); }/////////////////////////////以上是获取硬件信息。 while(true) { pfca=pcatch.getPacket();////////////这就是抓包的方法。 if(pfca!=null)/////////如果抓到包了,即不为NULL,则开始先转换它,然后再打印它。 { ipfca=(IPPacket)pfca; if(ipfca.protocol==6) typefca="TCP"; else if(ipfca.protocol==17) typefca="UDP"; else typefca="ELSE"; pacnum++; model.addRow(new String[]{""+pacnum,"IPv"+ipfca.version,""+ipfca.src_ip,""+ipfca.dst_ip,typefca,""+ipfca.len}); } if(pacnum%100==0) break;/////////每抓一百个就退出循环 } pcatch.close(); } catch(IOException ex)/////////////又是套路 { System.err.println(ex); } } }); 这个没有研究过,看看下面几篇文章不知道有没有帮助。http://www.4byte.cn/question/242894/inspect-outgoing-packets-and-delay-them-with-jpcap.htmlhttp://www.4byte.cn/question/412767/get-list-of-unused-lan-ip-addresses.htmlhttp://www.4byte.cn/question/557694/get-full-tcp-packet-data-using-jpcap.html 我的老师都不能搞定。来看看什么问题 java数据库连接池,大家来看看 各位大哥来帮小弟看看这个需求吧 关于“静态”??? 能否在java运行时设置环境变量? Java 基础问题,String ss[]=new String[]{"11","222","33333"}; 和String ss[]={"11","222","33333"}有什么区别 javax.ejb在哪个包里? 第一次用JBuilder,请帮忙一下!谢谢! 急!~ 写文件时,换行怎么做? rs.next运行不了 一道java程序设计题 求助一个文件读写的问题 韩顺平的例题
{
public void actionPerformed(ActionEvent e)
{/////以上是监听开始的代码,套路。
try
{
NetworkInterface[] devices=JpcapCaptor.getDeviceList();
JpcapCaptor pcatch=JpcapCaptor.openDevice(devices[0],65535,true,20);
pcatch.setFilter("ip",true);
Packet pfca;
IPPacket ipfca;
String typefca;///////////////以上都是变量声明
for(int i=0;i<devices.length;i++)
{
System.out.println(i+": "+devices[i].name+"("+devices[i].description+")");
System.out.println("Datalink: "+devices[i].datalink_name+"("+devices[i].datalink_description+")");
}/////////////////////////////以上是获取硬件信息。
while(true)
{
pfca=pcatch.getPacket();////////////这就是抓包的方法。
if(pfca!=null)/////////如果抓到包了,即不为NULL,则开始先转换它,然后再打印它。
{
ipfca=(IPPacket)pfca;
if(ipfca.protocol==6) typefca="TCP";
else if(ipfca.protocol==17) typefca="UDP";
else typefca="ELSE";
pacnum++;
model.addRow(new String[]{""+pacnum,"IPv"+ipfca.version,""+ipfca.src_ip,""+ipfca.dst_ip,typefca,""+ipfca.len});
}
if(pacnum%100==0) break;/////////每抓一百个就退出循环
}
pcatch.close();
}
catch(IOException ex)/////////////又是套路
{
System.err.println(ex);
}
}
});
http://www.4byte.cn/question/242894/inspect-outgoing-packets-and-delay-them-with-jpcap.html
http://www.4byte.cn/question/412767/get-list-of-unused-lan-ip-addresses.html
http://www.4byte.cn/question/557694/get-full-tcp-packet-data-using-jpcap.html