java 抓包工具 jpcap的下载与eclipse配置

xiaoxiao2021-03-01  34

1.jpcap的下载

    1.1建议去官网上下载 官网jpcap下载 如果打不开的话,文末我会提供网盘的下载链接的

    官网下载完成,解压之后

    

    1.2WinpPcap双击安装即可,jacap1和jpcap2随便选一个进入

    1.3Jpcap.dll复制到java jdk的安装目录下的bin目录里

上面那个目录是默认安装的目录

2.eclipse导入jpcap.jar包

    2.1这个jar的位置一般不要随便移动,所以我在eclipse的目录里新建了一个jar文件夹,把平时的jar包都存放到那里了

2.2 打开eclipse 右击你的java项目 Build Path --> Configure Bulide Path

    

    2.2.1会打开一个窗口,选择你储存的目录

    2.2.2选择之后,点击打开即可

点那个都行

2.2.3导入成功之后显示为

3.代码测试

import java.io.IOException; import jpcap.*; import jpcap.packet.IPPacket; import jpcap.packet.Packet; public class Test { public static void main(String[] args) { /*-------------- 第一步绑定网络设备 --------------*/ NetworkInterface[] devices = JpcapCaptor.getDeviceList(); for (NetworkInterface n : devices) { System.out.println(n.name + " | " + n.description); } System.out.println("-------------------------------------------"); JpcapCaptor jpcap = null; int caplen = 1512; boolean promiscCheck = true; try { jpcap = JpcapCaptor.openDevice(devices[1], caplen, promiscCheck, 50); //0 或 1 } catch (IOException e) { e.printStackTrace(); } /*----------第二步抓包-----------------*/ int i = 0; while (i < 10) { Packet packet = jpcap.getPacket(); if (packet instanceof IPPacket && ((IPPacket) packet).version == 4) { i++; IPPacket ip = (IPPacket) packet;// 强转 System.out.println("版本:IPv4"); System.out.println("优先权:" + ip.priority); System.out.println("区分服务:最大的吞吐量: " + ip.t_flag); System.out.println("区分服务:最高的可靠性:" + ip.r_flag); System.out.println("长度:" + ip.length); System.out.println("标识:" + ip.ident); System.out.println("DF:Don't Fragment: " + ip.dont_frag); System.out.println("NF:Nore Fragment: " + ip.more_frag); System.out.println("片偏移:" + ip.offset); System.out.println("生存时间:" + ip.hop_limit); String protocol = ""; switch (new Integer(ip.protocol)) { case 1: protocol = "ICMP"; break; case 2: protocol = "IGMP"; break; case 6: protocol = "TCP"; break; case 8: protocol = "EGP"; break; case 9: protocol = "IGP"; break; case 17: protocol = "UDP"; break; case 41: protocol = "IPv6"; break; case 89: protocol = "OSPF"; break; default: break; } System.out.println("协议:" + protocol); System.out.println("源IP " + ip.src_ip.getHostAddress()); System.out.println("目的IP " + ip.dst_ip.getHostAddress()); System.out.println("源主机名: " + ip.src_ip); System.out.println("目的主机名: " + ip.dst_ip); System.out.println("----------------------------------------------"); } } } }

正确的显示内容应该是

如果这有第一行,而没有下面的内容,修改一下代码的25行,

 

jpcap = JpcapCaptor.openDevice(devices[1], caplen, promiscCheck, 50);

devices[1]改成devices[0]再运行一下,就可以了。

PS:抓不到包,或者程序一直显示请稍等...... 解决办法:

 

电脑打开这个界面

看我的是第一个连接着网络,所以

jpcap = JpcapCaptor.openDevice(devices[1], caplen, promiscCheck, 50);

这行代码中的devices[1] 改为 devices[0],

如果还没有,电脑在后台浏览个网页之类的,产生点流量

如果还不行,不好意思 ,我也就不知道了,

 

 

百度网盘下载 Jpcap 提取码: 187k 

文件内容:

 

转载请注明原文地址: https://www.6miu.com/read-3200004.html

最新回复(0)