"Hello pcap!" implementation in different JVM languages.
var service = Service.Creator.create("PcapService");try (var pcap = service.live(service.interfaces(), new DefaultLiveOptions())) {pcap.loop(10, (args, header, buffer) -> {System.out.println("Args : " + args);System.out.println("Header : " + header);System.out.println("Packet : " + buffer);}, "Hello pcap!");}
val service = Service.Creator.create("PcapService")val pcap = service.live(service.interfaces(), DefaultLiveOptions())pcap.loop(10, { args, header, buffer ->println("Args : $args")println("Header : $header")println("Packet : $buffer")}, "Hello pcap!")pcap.close()
val service = Service.Creator.create("PcapService")val pcap = service.live(service.interfaces(), new DefaultLiveOptions())pcap.loop(10, (args: String, header: PacketHeader, buffer: PacketBuffer) => {println("Args : ", args)println("Header : ", header)println("Packet : ", buffer)}, "Hello pcap!")pcap.close()
def service = Service.Creator.create("PcapService")def pcap = service.live(service.interfaces(), new DefaultLiveOptions())pcap.loop(10, { args, header, buffer ->println("Args : " + args)println("Header : " + header)println("Packet : " + buffer)}, "Hello pcap!");pcap.close()
(def service (. Service$Creator (create "PcapService")))(def pcap (.live service (.interfaces service) (DefaultLiveOptions.)))(def handler (reify PacketHandler (gotPacket [this args header buffer](println "Args : " args)(println "Header : " header)(println "Buffer : " buffer))))(.loop pcap 10 handler "Hello pcap!")(.close pcap))
class Callbackdef gotPacket(args, header, buffer)puts "Args : " + argsputs "Header : " + header.toStringputs "Buffer : " + buffer.toStringendendservice = Service::Creator.create('PcapService')pcap = service.live(service.interfaces(), DefaultLiveOptions.new)pcap.loop(10, Callback.new, "Hello pcap!")pcap.close()
class Callback(PacketHandler):def gotPacket(self, args, hdr, buf):print("Args : ", args)print("Header : ", hdr)print("Buffer : ", buf)service = DefaultService()pcap = service.live(service.interfaces(), DefaultLiveOptions())pcap.loop(10, Callback(), "Hello pcap!")pcap.close()
Pcap is using semantic versioning: https://semver.org
Version | Status | Static Analysis |
1.0 | Maintained |
Linux (Tested)
Mac OS (Tested)
Windows (Tested)
Other OSes that supported by both Libpcap and JNA (Untested).
Java 7+
Libpcap for Unix or Npcap for Windows
Pcap can be used in modular java 9+ applications with specific module name listed below:
pcap-spi: pcap.spi
pcap-jdk7: pcap.jdk7
pcap-common: pcap.common
pcap-codec: pcap.codec
Every types, methods, or fields annotated with @Incubating might be changed or removed at any time.
Every types, methods, or fields annotated with @Incubating does not imply that the functionality being tested.