1.jpcap抓包
https://github.com/kumqu/java-jpcap
2.TCP逻辑分析
3.TCP数据包解析
3.1 数据包解析源码
import com.alibaba.fastjson.JSON;
import com.sun.jmx.remote.internal.ArrayQueue;
import com.sun.xml.internal.messaging.saaj.util.ByteInputStream;
import jpcap.packet.TCPPacket;
import sun.misc.FloatingDecimal;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
import java.util.*;
/**
* @description:
* @date: 2021-09-16 17:38
*/
class Data{
//请求方法
String method;
//url
String url;
//请求协议
String requestAgreement;
//协议版本
String requestVersion;
//请求协议
String responseAgreement;
//协议版本
String responseVersion;
//响应码
int code;
//请求端口
String requestIp;
//响应端口
String responseIp;
//请求端口
int requestPort;
//响应端口
int responsePort;
//请求头
Map<String,String> requestHeaders;
//响应头
Map<String,String> responseHeaders;
//请求体
byte[] requestData;
//响应体
byte[] responseData;
public String getMethod() {
return method;
}
public void setMethod(String method) {
this.method = method;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getRequestAgreement() {
return requestAgreement;
}
public void setRequestAgreement(String requestAgreement) {
this.requestAgreement = requestAgreement;
}
public String getRequestVersion() {
return requestVersion;
}
public void setRequestVersion(String requestVersion) {
this.requestVersion = requestVersion;
}
public String getResponseAgreement() {
return responseAgreement;
}
public void setResponseAgreement(String responseAgreement) {
this.responseAgreement = responseAgreement;
}
public String getResponseVersion() {
return responseVersion;
}
public void setResponseVersion(String responseVersion) {
this.responseVersion = responseVersion;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getRequestIp() {
return requestIp;
}
public void setRequestIp(String requestIp) {
this.requestIp = requestIp;
}
public String getResponseIp() {
return responseIp;
}
public void setResponseIp(String responseIp) {
this.responseIp = responseIp;
}
public int getRequestPort() {
return requestPort;
}
public void setRequestPort(int requestPort) {
this.requestPort = requestPort;
}
public int getRe