# Net::Pcap (Perl6) Libpcap bindings for Perl6. The modules are annotated with Pod. These Pods are rendered to [docs/](/docs). [perl6-net-packet](https://github.com/jpve/perl6-net-packet) is useful for decoding frames. ## Installation Using panda: ``` $ panda update $ panda install Net::Pcap ``` Using ufo: ``` $ ufo # Generates Makefile $ make $ make test $ make install ``` ## Usage Starting a capture: ``` use Net::Pcap; # Live capturing my $pcap = Net::Pcap.create("eth0"); $pcap.filter('portrange 1-1024'); $pcap.activate; # Read from file my $pcap = Net::Pcap.offline_open('./capture.pcap'); ``` Looping through frames: ``` use Net::Packet :short; loop $pcap.next_ex -> ($hdr, $frame) { my $eth = Ethernet.decode($frame); say sprintf 'Time: %.3f', $hdr.seconds; say sprintf 'Length: %d (%d captured)', $hdr.len, $hdr.caplen; say sprintf 'Ethernet:'; say sprintf ' Source: %s', $eth.src; say sprintf ' Destination: %s', $eth.dst; if $eth.pl ~~ IPv4 { say sprintf 'IPv4:'; say sprintf ' Source: %s', $eth.pl.src; say sprintf ' Destination: %s', $eth.pl.dst; } } ```