JAVA 使用 jnetpcap 实现基础的抓取本机NGINX HTTP请求 抓包

本文介绍了如何在阿里云CentOS7环境下,通过安装bison、flex、libpcap等工具,配置libjnetpcap.so库,来实现使用Java的jnetpcap库抓取本机NGINX的HTTP请求。详细步骤包括安装依赖、创建软链接以及项目代码结构的说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境准备:

部署环境为: 阿里云centos7 + jdk + bison-2.4.1  + flex-2.5.35 + libpcap-1.4.0 + m4-1.4.13 + libjnetpcap.so

需要的安装包在后面

上传安装包
bison-2.4.1.tar.gz 
flex-2.5.35.tar.gz 
libpcap-1.4.0.tar.gz 
m4-1.4.13.tar.gz
全部解压
tar -zxvf bison-2.4.1.tar.gz
tar -zxvf flex-2.5.35.tar.gz 
tar -zxvf libpcap-1.4.0.tar.gz
tar -zxvf m4-1.4.13.tar.gz
开始安装(必须按照顺序)
cd m4-1.4.13
./configure
make
make install 

cd bison-2.4.1
./configure
make
make install 

cd flex-2.5.35
./configure
make
make install 

cd libpcap-1.4.0
./configure
make
make install 

安装完成后/usr/local/lib 下会有 libpcap.so libpcap.so.1 libpcap.so.1.4.0 文件
建立一个软连接或者直接复制到 /usr/lib 和 /usr/lib64下
sudo ln -s /usr/local/lib/libpcap.so.1 /usr/lib/libpcap.so.1
sudo ln -s /usr/local/lib/libpcap.so /usr/lib/libpcap.so
sudo ln -s /usr/local/lib/libpcap.so.1.4.0 /usr/lib/libpcap.so.1.4.0

sudo ln -s /usr/local/lib/libpcap.so.1 /usr/lib64/libpcap.so.1
sudo ln -s /usr/local/lib/libpcap.so /usr/lib64/libpcap.so
sudo ln -s /usr/local/lib/libpcap.so.1.4.0 /usr/lib64/libpcap.so.1.4.0

将 libjnetpcap.so 文件复制到 /usr/lib 和 /usr/lib64下

已有的就不用管

代码实现:

项目结构:

pom.xml 

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jnetpcap</groupId>
            <artifactId>jnetpcap</artifactId>
            <version>1.4.r1425-1g</version>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.6.3</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.73</version>
        </dependency>
    </dependencies>

 application.yml

server:
  port: 8083

myproxy:
  # 抓取每个请求头里面设定好的值,此值用于降抓取的请求返回配对,值为NGINX随机生成,后面nginx有配置
  headerKey: Psession_id
logging:
  file:
    path: logs/proxy-java/
    name: logs/proxy-java/debug.log
  level:
    "com.capinfo": debug

 AsyncApp.java

package com.capinfo.bcip.async;



import com.capinfo.bcip.service.CaptureService;
import lombok.extern.slf4j.Slf4j;
import org.jnetpcap.PcapIf;
import org.springframework.b
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值