pacap
v0.0.3
Published
A Node.js library for capturing and sending network packets.
Downloads
11
Readme
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.