|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--net.sourceforge.jpcap.capture.PacketDispatcher | +--net.sourceforge.jpcap.capture.PacketCapture
This class is the core of packet capture in jpcap. It provides a high-level interface for capturing network packets by encapsulating libpcap.
If you want to capture network packets, implement packet listener and subscribe to an instance of this class. When packets arrive, the object will call you back via packetArrived().
Examples can be found in net.sourceforge.jpcap.tutorial.
Field Summary | |
static int |
DEFAULT_SNAPLEN
Snapshot length. |
static int |
DEFAULT_TIMEOUT
Default capture timeout in milliseconds. |
protected static java.lang.String |
LIB_PCAP_WRAPPER
Name of the java-enabled wrapper around libpcap. |
Constructor Summary | |
PacketCapture()
|
Method Summary | |
void |
capture(int count)
Capture packets. |
void |
close()
Close the capture device. |
static java.lang.String |
findDevice()
Detect a network device suitable for packet capture. |
static int |
getLinkLayerType()
Fetch the link layer type for the specified device. |
static int |
getNetmask(java.lang.String device)
Fetch the network mask for the specified device. |
static int |
getNetwork(java.lang.String device)
Fetch the network number for the specified device. |
CaptureStatistics |
getStatistics()
Fetch statistics on captured packets. |
void |
handlePacket(int length,
int caplen,
int seconds,
int useconds,
byte[] data)
Handle packets arriving from the libpcap interface. |
void |
open(java.lang.String device,
boolean promiscuous)
Open a network device for data capture. |
void |
open(java.lang.String device,
int snaplen,
boolean promiscuous,
int timeout)
Open a network device for data capture. |
void |
setFilter(java.lang.String filterExpression,
boolean optimize)
Create, compile and activate a filter from a filter expression. |
Methods inherited from class net.sourceforge.jpcap.capture.PacketDispatcher |
addPacketListener, addRawPacketListener, dispatchPacket, dispatchRawPacket, removePacketListener, removeRawPacketListener |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected static java.lang.String LIB_PCAP_WRAPPER
public static int DEFAULT_SNAPLEN
public static int DEFAULT_TIMEOUT
Constructor Detail |
public PacketCapture()
Method Detail |
public void open(java.lang.String device, boolean promiscuous) throws CaptureDeviceOpenException
device
- the name of the network device.
Examples of valid network devices on linux are 'eth0' and 'ppp0'.promiscuous
- whether or not the device should be opened in
promiscuous mode.public void open(java.lang.String device, int snaplen, boolean promiscuous, int timeout) throws CaptureDeviceOpenException
device
- the name of the network device.
Examples of valid network devices on linux are 'eth0' and 'ppp0'.snaplen
- the 'snapshot' length. Defines the maximum number of
bytes to save from each captured packet.promiscuous
- whether or not the device should be opened in
promiscuous mode.timeout
- the packet capture timeout in milliseconds.public void setFilter(java.lang.String filterExpression, boolean optimize) throws InvalidFilterException
filterExpression
- the filter expression. For example,
the expression "host techno" would filter only packets sent or
arriving at the host named techno.public void capture(int count) throws CapturePacketException
count
- the number of packets to capture.
If count is negative, capture will block forever, unless an exception
is thrown.public CaptureStatistics getStatistics()
public void close()
public static java.lang.String findDevice() throws CaptureDeviceNotFoundException
public static int getNetwork(java.lang.String device) throws CaptureConfigurationException
device
- the name of the network device.public static int getNetmask(java.lang.String device) throws CaptureConfigurationException
device
- the name of the network device.public static int getLinkLayerType() throws CaptureConfigurationException
public void handlePacket(int length, int caplen, int seconds, int useconds, byte[] data)
Arriving packets are dispatched to registered packet listeners. If caplen is smaller than length, then the packet was truncated because the amount of data on the wire exceeded the snapshot length specified when open() was called.
handlePacket
in interface PacketHandler
length
- the length of the packet off of the wire.caplen
- the number of bytes actually captured.seconds
- the seconds component of the timestamp.useconds
- the microseconds component of the timestamp.data
- the contents of the captured packet.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |