Записать байтовый массив в новый файл PCAP - PullRequest
0 голосов
/ 29 марта 2019

Я использую Java 8, Spring Rest API и Angular. У меня есть byte [] binaryData, который извлекается из столбца в БД (Postgres) типа данных varbinary. Я хочу создать новый файл '.pcap' как sample.pcap и вернуть этот файл в качестве ответа, чтобы этот файл был загружен в браузер.

Я получил байт [] как:

byte[] binaryData = resultSet.getBytes("col_name");

Я написал функцию, используя библиотеку jnetpcap:

byte[] binaryData = resultSet.getBytes("col_name");

написал функцию с использованием библиотеки jnetpcap:

private void pcapFile(Detail detail){

    List<PcapIf> alldevs = new ArrayList<PcapIf>();
    StringBuilder errbuf = new StringBuilder();

    int r = Pcap.findAllDevs(alldevs, errbuf);
    if (r != Pcap.OK || alldevs.isEmpty()) {
        throw new DataNotFoundException("Unable to create PCAP file");
    }
    PcapIf device = alldevs.get(0);

    int snaplen = 64 * 1024; // Capture all packets, no trucation
    int flags = Pcap.MODE_PROMISCUOUS; // capture all packets
    int timeout = 5 * 1000; // 10 seconds in millis
    Pcap pcap =
            Pcap.openLive(device.getName(), snaplen, flags, timeout, errbuf);
    if (pcap == null) {
        throw new DataNotFoundException("Unable to create PCAP file");
    }

    String ofile = "sample.cap";
    PcapDumper dumper = pcap.dumpOpen(ofile);

    ByteBufferHandler<PcapDumper> dumpHandler = new ByteBufferHandler<PcapDumper>() {

        public void nextPacket(PcapHeader header, ByteBuffer buffer,
                               PcapDumper dumper) {

            dumper.dump(header, buffer);
        }
    };

    pcap.loop(10, dumpHandler, dumper);

    File file = new File(ofile);

}

Из которых я понятия не имею о том, как работает PcapDumper.

Я не могу добраться до части, где я могу создать, сохранить и успешно вернуть файл.

КАК получить I двоичные данные (байт []) для анализа в новый файл pcap?

PS: Пожалуйста, не отмечайте его как дубликат или что-то, что я уже просмотрел по всем вопросам. Либо многие из них остаются без ответа, либо решение не подходит для моей проблемы, даже в некоторых случаях ссылки на решение были удалены.

...