0.0.3 • Published 12 months ago

pacap v0.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
12 months ago

PaCap

PaCap is a Node.js library that provides packet capturing and sending functionalities using the pcap library. This library allows you to capture network packets, apply filters, and handle them in your Node.js application.

Installation

To install PaCap, you need to have pcap and other dependencies installed on your system. You can install the library via npm:

npm install pacap

Usage

Here's an example of how to use the PaCap library:

JavaScript Example

const {PaCap, decoders} = require('pacap');

const device = PaCap.findDevice('your.ip.add.here'); // or you can do this : PaCap.listDevices()[0];
const filter = 'udp' // or you can do this for filtering : 'udp and (dst port 8080 or src port 8080)';
const buffer = Buffer.alloc(2048);

const session = new PaCap();
session.open(device, filter, buffer.length, buffer);
session.startCapture();

session.on('packet', (type, packetInfo) => {
    console.log('Packet received:', packetInfo.data);

    let ret = decoders.Ethernet(packetInfo.data);
    ret = decoders.IPV4(packetInfo.data, ret.offset);
    ret = decoders.UDP(packetInfo.data, ret.offset);
    let payload = packetInfo.data.slice(ret.offset);

    try {
        // manage the payload here ...
        console.log(payload);
    } catch (error) {
        console.error("Error handling packet: ", error);
    }
});

Classes and Methods

class PaCap()

Methods

  • open(device, filter, bufferSize, buffer): Opens a device for packet capture.

    • device: The network device to open.
    • filter: The packet filter to apply.
    • bufferSize: The size of the buffer for capturing packets.
    • buffer: The buffer to use for capturing packets.
  • close(): Closes the current capture session.

  • send(buffer, length): Sends a packet.

    • buffer: The packet data to send.
    • length: The length of the packet data.
  • on(eventName, callback): Registers an event handler for packet events.

    • eventName: The name of the event to listen for.
    • callback: The callback function to call when the event is emitted.
  • startCapture(): Starts capturing packets.

Static Methods

  • findDevice(ip): Finds a device by its IP address.

    • ip: The IP address to search for.
  • deviceList(): Lists all available devices.

Events

  • packet: Emitted when a packet is captured.

License

This project is licensed under the MIT License.

0.0.3

12 months ago

0.0.2

12 months ago

0.0.1

12 months ago