P
P
Pcap
Search…
Introduction
Pcap provides a packet processing library for rapid development on top of JVM languages.

Hello Pcap!

"Hello pcap!" implementation in different JVM languages.
Java
Kotlin
Scala
Groovy
Clojure
JRuby
Jython
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 Callback
def gotPacket(args, header, buffer)
puts "Args : " + args
puts "Header : " + header.toString
puts "Buffer : " + buffer.toString
end
end
service = 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()

Version History

Pcap is using semantic versioning: https://semver.org
Version
Latest Version
Release Date
Latest Release
1.0.0
1.0.7
2020-12-24
2021-03-12
1.2.0
1.2.2
2021-02-01
2021-03-20
1.3.0
1.3.4
2021-05-02
2021-11-15
1.4.0
1.4.2
2021-12-25
2022-09-13

Project Status

Pcap • ardikars
GitHub

Supported platforms

  • Linux (Tested)
  • Mac OS (Tested)
  • Windows (Tested)
  • FreeBSD (Tested)
  • Other OSes that supported by both Libpcap and JNA (Untested).

Requirements

  • Java 7+
  • Libpcap for Unix or Npcap for Windows

Java module system with java 9+

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

Disclimers

  • 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.
  • Calling the @Restricted method might crash your app if you use it incorrectly. Make sure you know what you're doing with it.
Last modified 11d ago
Copy link
Outline
Hello Pcap!
Version History
Project Status
Supported platforms
Requirements
Java module system with java 9+