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

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]再运行一下,就可以了


网盘下载jpcap 密码:qi3r

文件内容:



猜你喜欢

转载自blog.csdn.net/qq_37638061/article/details/80710143
今日推荐