⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcp.java

📁 这个程序实现了在网络上截获邮件数据并还原邮件。仅供学习参考
💻 JAVA
字号:
//package netcap;
import jpcap.*;
import java.util.*;
import java.net.*;
import java.text.*;
import java.util.Timer;

class Tcp implements JpcapHandler
  {
    static long count=0;                //计数
    static double countlen=0;
    static MainFrame mainFrame = new MainFrame();
    byte[] packetdatas=null;  //累加池
    byte[] packetdata=null;   //发送池
    public void handlePacket(Packet packet)
      {
        if (packet instanceof IPPacket)
          {
            IPPacket ipPacket = (IPPacket)packet;
            countlen=countlen+ipPacket.len;
            count++;
            if(mainFrame.button1.getLabel()=="Pause")
              {
                packetdatas[i]=ipPacket.data[i];
                if (packetdatas.length>1024*1024)
                  {
                    packetdata=packetdatas;
                    packetdatas=null;
                  }
                packetdata=ipPacket.data;
                Thread threadpacket = new threadreadpacket(ipPacket.len,
                ipPacket.toString(), packetdata, mainFrame,count);
                threadpacket.start();
                packetdata=null;
              }
            mainFrame.jLabel2.setText("Captured "+countlen+" bytes Data");
            mainFrame.label2.setText("Captured "+count+" IPPacket");
          }
        }
      public static void main(String[] args) throws java.io.IOException
        {
          int i=0;
          mainFrame.setSize(650, 350);
          mainFrame.setTitle("NetCap");
          mainFrame.setVisible(true);
          String[] lists=Jpcap.getDeviceDescription();	//获取网络设备信息
          for(i=0;i<lists.length;i++)
          mainFrame.jComboBox_card.insertItemAt(lists[i],i);
          while(true)
            {
              if(mainFrame.button2.getLabel()=="Stop")
                {
                  i=mainFrame.deviceNum;
                  mainFrame.jComboBox_card.enable(false);
                  mainFrame.textArea1.setText(lists[i]);
                  mainFrame.label1.setText("Capturing on Device "+ i+" "+lists[i]);
                  Jpcap jpcap=Jpcap.openDevice(Jpcap.getDeviceList()[i],1000,true,20);  //true,the inferface becomes promiscuous mode(混杂模式)
                  jpcap.loopPacket( -1, new Tcpdump()); //循环抓包,'-1'表示无限次数
                  break;
                 }
                    //delay();
             }
         }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -