📄 getmessage1.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 + -