解决方案 »

  1.   

    估计程序有点乱。我给大家注释以下,其实很短~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);
                    }
                }
            });
      

  2.   

    这个没有研究过,看看下面几篇文章不知道有没有帮助。
    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