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

📄 getmessage1.java

📁 在局域网中抓获各种数据包
💻 JAVA
字号:

import jpcap.*;
import jpcap.packet.*;
import java.io.*;
import java.sql.*;
import java.net.InetAddress;
import java.lang.*;

public class getMessage1 implements PacketReceiver
{
    public void receivePacket(Packet packet)    //实现接口PacketReceiver类中的receivePacket方法
    { 
    	System.out.println("ok");
    } 
    public static void main(String[] args) 
      { 
        String src_ip="";                       //定义变量用存放数据包的相应的信息
        String dst_ip="";
        int protocol=0;
        int length=0;
        int version=0;
      try
      {
          NetworkInterface[] NI=JpcapCaptor.getDeviceList();               //获取设备列表名
          JpcapCaptor jpcap1= JpcapCaptor.openDevice(NI[1], 1024, true, 50); // 打开网卡设备
          for(int j=0;j<1000;j++)                                  //循环获取数据包
          {
              Packet pa=jpcap1.getPacket();                        //获取数据包
              IPPacket ip=(IPPacket)pa;
              if (ip instanceof IPPacket)                 //判断是否为IP数据包
                {  //屏幕输出IP数据包的信息
                     System.out.println(ip.src_ip+"\t"+ip.dst_ip+"\t"+ip.protocol+"\t"+
                     ip.length+"\t"+ip.version+"\t"+ip.ident+"\t"+
                     ip.rsv_frag+"\t"+ip.offset+"\t"+ip.hop_limit+"\t"+ip.rsv_tos+"\r\n");
                    //把IP数据包写入到文本文件
         	     RandomAccessFile rf = new RandomAccessFile("packet.txt", "rw");/*创建一个用来输入输出RandomAccessFile流,文件名为packet*/
                     rf.seek(rf.length());                                    //定位文件指针在文件中的最后
                     rf.writeBytes(ip.src_ip+"\t"+ip.dst_ip+"\t"+ip.protocol+"\t"+ip.length+"\t"+ip.version+"\t"+ip.ident+"\t"+ip.rsv_frag+"\t"+ip.offset+"\t"+ip.hop_limit+"\t"+ip.rsv_tos+"\t"+ip.data+"\r\n");/*向txt文件写入IP的源地址,目标地址,高层协议,长度, 版本号,标识符(序号),标志,段偏移量,数据报的寿命数值,服务型号,数据*/
                     rf.close();
                     //将IP数据包的信息写入数据库
                     src_ip=ip.src_ip.toString();
                     dst_ip=ip.dst_ip.toString();
                     protocol=ip.protocol;
                     length=ip.length;
                     version=ip.version;
                     String JDriver="sun.jdbc.odbc.JdbcOdbcDriver";   //驱动程序名
                     String conURL="jdbc:odbc:test";            //数据源
                     try
                       {
                        Class.forName(JDriver);           //获取驱动程序并加载
                       }
                     catch(java.lang.ClassNotFoundException e)
                       { 
    	                 System.out.println("ForName:"+e.getMessage());
    	               }
                     Connection con=DriverManager.getConnection(conURL);//建立数据库的连接
                     Statement s=con.createStatement();     //创建Statement对象用来执行SQL 语句
                     String query="insert into captor values('"+src_ip+"','"+dst_ip+"','"+protocol+"','"+length+"','"+version+"')";
                     s.executeUpdate(query);     //执行SQL语句命令
                     s.close();
                     con.close();                 //关闭操作 
               }
          }
       }
      catch (Exception e) 
      { e.printStackTrace(); }
      }
}
               
 

⌨️ 快捷键说明

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