亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

java抓包后對pcap文件解析示例

2019-11-26 15:36:04
字體:
來源:轉載
供稿:網友

這是自己寫的簡單的解析pcap文件,方便讀取pcap文件,大家參考使用吧

復制代碼 代碼如下:

InputStream is = DataParser.class.getClassLoader().getResourceAsStream("baidu_cdr.pcap");

Pcap pcap = PcapParser.unpack(is);
is.close();
byte[] t = pcap.getData().get(0).getContent();
byte[] data = Arrays.copyOfRange(t, 42, t.length);


PcapParser.java

復制代碼 代碼如下:

package com.hylanda.pcap;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

/**
 * @author zhouqisheng
 *
 */
public class PcapParser {

 public static Pcap unpack(InputStream is) throws IOException {
  Pcap pcap = null;
  byte[] buffer_4 = new byte[4];
  byte[] buffer_2 = new byte[2];
  pcap = new Pcap();

  PcapHeader header = new PcapHeader();
  int m = is.read(buffer_4);
  if(m != 4){
   return null;
  }
  reverseByteArray(buffer_4);
  header.setMagic(byteArrayToInt(buffer_4, 0));
  m = is.read(buffer_2);
  reverseByteArray(buffer_2);
  header.setMagor_version(byteArrayToShort(buffer_2, 0));
  m = is.read(buffer_2);
  reverseByteArray(buffer_2);
  header.setMinor_version(byteArrayToShort(buffer_2, 0));
  m = is.read(buffer_4);
  reverseByteArray(buffer_4);
  header.setTimezone(byteArrayToInt(buffer_4, 0));
  m = is.read(buffer_4);
  reverseByteArray(buffer_4);
  header.setSigflags(byteArrayToInt(buffer_4, 0));
  m = is.read(buffer_4);
  reverseByteArray(buffer_4);
  header.setSnaplen(byteArrayToInt(buffer_4, 0));
  m = is.read(buffer_4);
  reverseByteArray(buffer_4);
  header.setLinktype(byteArrayToInt(buffer_4, 0));

  pcap.setHeader(header);

  List<PcapData> dataList = new ArrayList<PcapData>();
  while (m > 0) {
   PcapData data = new PcapData();
   m = is.read(buffer_4);
   if (m < 0) {
    break;
   }
   reverseByteArray(buffer_4);
   data.setTime_s(byteArrayToInt(buffer_4, 0));
   m = is.read(buffer_4);
   reverseByteArray(buffer_4);
   data.setTime_ms(byteArrayToInt(buffer_4, 0));
   m = is.read(buffer_4);
   reverseByteArray(buffer_4);
   data.setpLength(byteArrayToInt(buffer_4, 0));
   m = is.read(buffer_4);
   reverseByteArray(buffer_4);
   data.setLength(byteArrayToInt(buffer_4, 0));
   byte[] content = new byte[data.getpLength()];
   m = is.read(content);
   data.setContent(content);

   dataList.add(data);
  }

  pcap.setData(dataList);
  return pcap;
 }

 private static int byteArrayToInt(byte[] b, int offset) {
  int value = 0;
  for (int i = 0; i < 4; i++) {
   int shift = (4 - 1 - i) * 8;
   value += (b[i + offset] & 0x000000FF) << shift;
  }
  return value;
 }

 private static short byteArrayToShort(byte[] b, int offset) {
  short value = 0;
  for (int i = 0; i < 2; i++) {
   int shift = (2 - 1 - i) * 8;
   value += (b[i + offset] & 0x000000FF) << shift;
  }
  return value;
 }

 /**
  * 反轉數組
  * @param arr
  */
 private static void reverseByteArray(byte[] arr){
  byte temp;
  int n = arr.length;
  for(int i=0; i<n/2; i++){
   temp = arr[i];
   arr[i] = arr[n-1-i];
   arr[n-1-i] = temp;
  }
 }

}

Pcap.java

復制代碼 代碼如下:

/**
 *
 */
package com.hylanda.pcap;

import java.util.List;

/**
 * @author zhouqisheng
 *
 */
public class Pcap {
 private PcapHeader header;
    private List<PcapData> data;
 public PcapHeader getHeader() {
  return header;
 }
 public void setHeader(PcapHeader header) {
  this.header = header;
 }
 public List<PcapData> getData() {
  return data;
 }
 public void setData(List<PcapData> data) {
  this.data = data;
 }
    @Override
    public String toString(){
     StringBuilder s = new StringBuilder();
     s.append("header{/n");
     s.append(header.toString());
     s.append("}/n");
     s.append("data part count=").append(data.size());

     return s.toString();
    }
}

PcapData.java

復制代碼 代碼如下:

package com.hylanda.pcap;

/**
 * @author zhouqisheng
 *  數據包頭
 */
public class PcapData {
 private int time_s;//時間戳(秒)
 private int time_ms;//時間戳(微妙)
 private int pLength;//抓包長度
 private int length;//實際長度
 private byte[] content;//數據
 public int getTime_s() {
  return time_s;
 }
 public void setTime_s(int time_s) {
  this.time_s = time_s;
 }
 public int getTime_ms() {
  return time_ms;
 }
 public void setTime_ms(int time_ms) {
  this.time_ms = time_ms;
 }
 public int getpLength() {
  return pLength;
 }
 public void setpLength(int pLength) {
  this.pLength = pLength;
 }
 public int getLength() {
  return length;
 }
 public void setLength(int length) {
  this.length = length;
 }
 public byte[] getContent() {
  return content;
 }
 public void setContent(byte[] content) {
  this.content = content;
 }

 @Override
 public String toString(){
  StringBuilder s = new StringBuilder();
  s.append("time_s=").append(this.time_s);
  s.append("/ntime_ms=").append(this.time_ms);
  s.append("/npLength=").append(this.pLength);
  s.append("/nlength=").append(this.length);
  return null;
 }
}

PcapHeader.java

復制代碼 代碼如下:

package com.hylanda.pcap;

/**
 * @author zhouqisheng
 * pcap文件頭
 */
public class PcapHeader {
 private int magic;//文件識別頭,為0xA1B2C3D4
 private short magor_version;//主要版本
    private short minor_version;//次要版本
    private int timezone;//當地標準時間
    private int sigflags;//時間戳的精度
    private int snaplen;//最大的存儲長度
    /**
     * 0            BSD loopback devices, except for later OpenBSD
  1            Ethernet, and Linux loopback devices
  6            802.5 Token Ring
  7            ARCnet
  8            SLIP
  9            PPP
  10           FDDI
  100         LLC/SNAP-encapsulated ATM
  101         “raw IP”, with no link
  102         BSD/OS SLIP
  103         BSD/OS PPP
  104         Cisco HDLC
  105         802.11
  108         later OpenBSD loopback devices (with the AF_value in network byte order)
  113         special Linux “cooked” capture
  114         LocalTalk
     */
    private int linktype;//鏈路類型
 public int getMagic() {
  return magic;
 }
 public void setMagic(int magic) {
  this.magic = magic;
 }
 public short getMagor_version() {
  return magor_version;
 }
 public void setMagor_version(short magor_version) {
  this.magor_version = magor_version;
 }
 public short getMinor_version() {
  return minor_version;
 }
 public void setMinor_version(short minor_version) {
  this.minor_version = minor_version;
 }
 public int getTimezone() {
  return timezone;
 }
 public void setTimezone(int timezone) {
  this.timezone = timezone;
 }
 public int getSigflags() {
  return sigflags;
 }
 public void setSigflags(int sigflags) {
  this.sigflags = sigflags;
 }
 public int getSnaplen() {
  return snaplen;
 }
 public void setSnaplen(int snaplen) {
  this.snaplen = snaplen;
 }
 public int getLinktype() {
  return linktype;
 }
 public void setLinktype(int linktype) {
  this.linktype = linktype;
 }

 @Override
    public String toString(){
  StringBuilder s = new StringBuilder();
  s.append("magic=").append("0x" + Integer.toHexString(this.magic));
  s.append("/nmagor_version=").append(this.magor_version);
  s.append("/nminor_version=").append(this.minor_version);
  s.append("/ntimezone=").append(this.timezone);
  s.append("/nsigflags=").append(this.sigflags);
  s.append("/nsnaplen=").append(this.snaplen);
  s.append("/nlinktype=").append(this.linktype);
     return s.toString();
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性猛交xxxx乱大交3| 成人a级免费视频| 国产精品网红直播| 亚洲国产精品99久久| 精品少妇一区二区30p| 亚洲精品中文字幕av| 麻豆成人在线看| 久久免费视频在线| 欧美大全免费观看电视剧大泉洋| 欧美性videos高清精品| 97香蕉超级碰碰久久免费软件| 亚洲欧美激情四射在线日| 亚洲黄色av网站| 欧美与黑人午夜性猛交久久久| 中文字幕亚洲欧美| 777777777亚洲妇女| 日韩中文在线中文网三级| 亚洲人成电影在线观看天堂色| 国产成人综合一区二区三区| 成人激情视频网| 91探花福利精品国产自产在线| 欧美成人一区在线| 午夜美女久久久久爽久久| 久久精品99久久久香蕉| 91久久久精品| 国产亚洲欧美日韩精品| 日韩a**站在线观看| 日韩成人激情在线| 亚洲成人av片在线观看| 亚洲加勒比久久88色综合| 性色av一区二区三区免费| 亚洲3p在线观看| 国产精品亚洲аv天堂网| 亚洲色图18p| 亚洲一区二区中文字幕| 日韩精品在线免费观看视频| 国产精品久久久久9999| 国产精品久久久久久av福利| 激情成人在线视频| 国产精品久久久久影院日本| 久久久www成人免费精品| 日韩中文字幕网| 欧美大尺度激情区在线播放| 日韩中文在线中文网在线观看| 91精品国产综合久久久久久久久| 日韩电影网在线| 欧美午夜www高清视频| 狠狠色香婷婷久久亚洲精品| 亚洲欧美日韩天堂一区二区| 久久综合久久美利坚合众国| 亚洲码在线观看| 97在线免费视频| 久久频这里精品99香蕉| 奇门遁甲1982国语版免费观看高清| 精品国内产的精品视频在线观看| 奇米成人av国产一区二区三区| 成人激情电影一区二区| 韩日欧美一区二区| 日韩精品视频中文在线观看| 不卡中文字幕av| 欧美精品videos另类日本| 久久99热这里只有精品国产| 亚洲高清在线观看| 欧美在线视频免费观看| 国产精品天天狠天天看| 国产精品美女久久| 97国产真实伦对白精彩视频8| 91久久久久久久久久久| 国产精品一区二区三区久久久| 91po在线观看91精品国产性色| 国产在线视频一区| 国产精品视频最多的网站| 亚洲老板91色精品久久| 国产精品第七十二页| 久久精品视频在线观看| 色www亚洲国产张柏芝| 欧洲午夜精品久久久| 国产激情视频一区| 国产精品稀缺呦系列在线| 国产网站欧美日韩免费精品在线观看| 九九精品在线视频| 欧美在线免费看| 亚洲片在线资源| 欧美性xxxxhd| 久久亚洲综合国产精品99麻豆精品福利| 久久综合久久美利坚合众国| 国产精品亚洲综合天堂夜夜| 日韩av免费在线| 久久男人的天堂| 亚洲视频网站在线观看| 激情久久av一区av二区av三区| 欧美巨乳美女视频| 91午夜理伦私人影院| 中文欧美在线视频| 精品日本美女福利在线观看| 精品视频—区二区三区免费| 国模gogo一区二区大胆私拍| 亚洲午夜av久久乱码| 久久国产精品免费视频| 中文字幕亚洲图片| 欧美日韩亚洲精品一区二区三区| 亚洲福利视频网站| 亚洲一区二区日本| 国产精品国产三级国产专播精品人| 亚洲精品国产综合久久| 最近2019年中文视频免费在线观看| 91九色国产社区在线观看| 亚洲男人天堂2019| 成人av在线天堂| 午夜精品久久久99热福利| 国产精品一区二区久久精品| 欧美理论电影在线观看| 亚洲精品视频久久| 97碰在线观看| 欧美在线免费看| 亚洲国产精品成人av| 中文字幕一精品亚洲无线一区| 久久久精品国产| 国内精品久久久久伊人av| 国产欧美日韩精品在线观看| 日本精品久久久| 亚洲国产天堂久久综合网| 欧美日韩不卡合集视频| 亚洲图中文字幕| 一本色道久久88综合亚洲精品ⅰ| 亚洲人成免费电影| 日韩精品在线视频观看| 日韩高清有码在线| 久久亚洲成人精品| 国产欧美在线视频| 综合136福利视频在线| 视频一区视频二区国产精品| 欧美日韩在线视频一区二区| 欧美在线视频在线播放完整版免费观看| 日韩成人高清在线| 在线精品视频视频中文字幕| 国产一区玩具在线观看| 久久精品99久久香蕉国产色戒| 国产精品久久久久久久久久久久久| 久久香蕉频线观| 亚洲大胆人体视频| 亚洲石原莉奈一区二区在线观看| 国产精品综合网站| 亚洲精品福利在线观看| 亚洲欧美日韩综合| 欧美精品一区二区三区国产精品| 亚洲一区二区三区在线免费观看| 韩国19禁主播vip福利视频| 亚洲免费精彩视频| 亚洲最新视频在线| 色午夜这里只有精品| 欧美亚洲国产日本| 日韩欧美亚洲国产一区| 日韩av在线免费观看| 日韩大胆人体377p| 一区二区三区无码高清视频| 国产精品免费久久久久影院| 福利精品视频在线| 精品视频中文字幕| 成人av番号网| 日韩最新中文字幕电影免费看| 日韩hd视频在线观看| 91精品国产综合久久香蕉最新版| 78色国产精品|