picatz / packetz

🦈 Packet capturing library built with LibPcap

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🦈 Packetz

Packet capturing library built with LibPcap.

Installation

Add this to your application's shard.yml:

dependencies:
  packetz:
    github: picatz/packetz

Basic Usage

require "packetz"

# start packet capture on default interface
Packetz.capture do |packet|
  puts packet.hexdump
end

Craft your Capture

# create capture handler
cap = Packetz.capture

# stop the capture with ctl+C
Signal::INT.trap do
  puts "Stopping!"
  cap.stop!
  exit
end

# setup the handler
cap.snapshot_length  = 33333
cap.promiscuous_mode = true
cap.monitor_mode     = true

# start capturing
cap.start!

# do something with each packet and its pcap header
cap.each do |packet, pcap_header|
  # something
end

Network Interfaces

# get default interface to capture on
Packetz.interfaces.default
# get all possible interfaces
Packetz.interfaces.all do |interface|
  puts interface
end

Contributors

  • picat Kent 'picat' Gruber - creator, maintainer
  • maiha maiha - pcap.cr
  • puppetpies Brian Hood - libpcap.cr

About

🦈 Packet capturing library built with LibPcap

License:MIT License


Languages

Language:Crystal 100.0%