欢迎来到天天文库
浏览记录
ID:37925621
大小:92.00 KB
页数:17页
时间:2019-06-02
《android抓包实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Windows下的基于java的网络抓包方法一、实验内容描述本实验是用java实现的网络抓包程序,在windows环境下安装winpcap4.0和jpcap6.0后,下载eclipse和jigloo插件(一种在eclipse底下作图形化开发的工具),将其安装好,然后就可以进行java的网络抓包图形化开发了。二、原理与关键技术2.1网络抓包技术原理网络层上有各种各样的数据包,它们以不同的帧格式在网络层上进行传输,但是在传输时它们都遵循相同的格式,即有相同的长度,如果一种协议的帧格式达不到这种长度,就让其补齐,以达到我们的要求。2.2网络抓包关键技术无论是在wind
2、ows操作系统下还是在linux操作系统下,要想捕获网络上的数据包,必须要对网卡进行控制,因为本机的数据报从网络上来到本机是通过网卡然后再保存到本地缓冲区上的,所以要抓获网包就必须调用网卡驱动中的对外函数,在linux系统中有net.h文件,可以调用net.h文件中的函数来操作网卡,可以直接编程实现,但为了更方便的使用,可以安装一个叫libpcap的软件,这样调用函数更好用,而在windows系统中,因为源代码不对外公开,所以要安装一个叫winpcap的软件,这样用C或VC++就可以实现了,但因为我用的是java语言来实现的,所以无论是在哪个系统都要安装一个叫j
3、pcap的软件,它本身就把底层的函数又封装了一下,这样就可以让java来使用了。三、设计与实现3.1基于java的设计方案我的这个网络抓包程序是图形化操作界面,在菜单栏点击抓包按钮后选择网卡和过滤字还有最长字长,点击开始,然后就可以开始抓包了,在主界面中就会显示出一行又一行的数据,这些数据就是抓获到的数据包。3.2具体实现1、安装winpcap4.0和jpcap6.02、下载eclipse3.3和jigloo,jigloo是eclipse底下的插件,是用来支持eclipse底下的java图形化开发的。3、编写java抓包程序:建立三个文件,一个主程序,一个抓包程
4、序,一个抓包选项程序对话框程序第一个程序:主程序如下packagenetcap;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JSeparator;importjavax.swing.JMenuItem;importjavax.swing.JMenu;importjavax.swing.JMenuBar;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importj
5、avax.swing.table.*;importnetcap.*;importjpcap.*;importjpcap.packet.*;importjava.util.*;importjava.sql.Timestamp;publicclassJFrameMainextendsjavax.swing.JFrameimplementsActionListener{privateJMenuItemexitMenuItem;privateJSeparatorjSeparator2;privateJMenuItemsaveAsMenuItem;privateJMenu
6、ItemsaveMenuItem;privateJMenuItemstopMenuItem;privateJMenuItemstartMenuItem;privateJMenuMenu;privateJMenuBarjMenuBar1;JTabletabledisplay=null;Vectorrows,columns;DefaultTableModeltabModel;JScrollPanescrollPane;JLabelstatusLabel;Netcaptorcaptor=newNetcaptor();/***Auto-generatedmainmeth
7、odtodisplaythisJFrame*/publicstaticvoidmain(String[]args){JFrameMaininst=newJFrameMain();inst.setVisible(true);}publicJFrameMain(){super();initGUI();}privatevoidinitGUI(){try{setSize(400,300);{jMenuBar1=newJMenuBar();setJMenuBar(jMenuBar1);{Menu=newJMenu();jMenuBar1.add(Menu);Menu.se
8、tText("u629
此文档下载收益归作者所有