|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sourceforge.jpcap.capture.PacketDispatcher net.sourceforge.jpcap.capture.PacketCaptureBase 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 PacketListener and register with 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.
For more documentation on this class's methods, see PacketCaptureCapable; Javadoc is 'inherited' from this interface.
PacketCapture utilizes libpcap's pcap_loop(). See SyncPacketCapture for pcap_dispatch()-type behavior.
Field Summary | |
protected static java.lang.String |
LIB_PCAP_WRAPPER
Name of the java-enabled wrapper around libpcap. |
Fields inherited from class net.sourceforge.jpcap.capture.PacketCaptureBase |
droppedCount, linkType, receivedCount |
Fields inherited from interface net.sourceforge.jpcap.capture.PacketCaptureCapable |
DEFAULT_SNAPLEN, DEFAULT_TIMEOUT |
Constructor Summary | |
PacketCapture()
Create a new packet capture instance. |
Method Summary | |
void |
capture(int count)
Capture packets. |
void |
capture(int instance,
int count)
|
void |
close()
Close the capture device. |
void |
close(int instance)
Close cleans up after a packet capture session. |
java.lang.String |
findDevice()
Detect a network device suitable for packet capture. |
int |
getLinkLayerType()
Fetch the link layer type for the specified device. |
int |
getLinkLayerType(int instance)
|
int |
getNetmask(java.lang.String device)
Fetch the network mask for the specified device. |
int |
getNetwork(java.lang.String device)
Fetch the network number for the specified device. |
int |
getSnapshotLength()
Get the snapshot length given that network device is open. |
int |
getSnapshotLength(int instance)
|
CaptureStatistics |
getStatistics()
Fetch statistics on captured packets. |
static java.lang.String[] |
lookupDevices()
Get Interface List |
void |
open(int instance,
java.lang.String device,
int snaplen,
boolean promiscuous,
int timeout)
|
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 |
openOffline(int instance,
java.lang.String fileName)
|
void |
openOffline(java.lang.String fileName)
Open a tcpdump-formatted savefile. |
void |
setFilter(int instance,
java.lang.String filterExpression,
boolean optimize)
|
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.PacketCaptureBase |
handlePacket |
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 |
Methods inherited from interface net.sourceforge.jpcap.capture.PacketCaptureCapable |
addPacketListener, addRawPacketListener, removePacketListener, removeRawPacketListener |
Field Detail |
protected static java.lang.String LIB_PCAP_WRAPPER
Constructor Detail |
public PacketCapture()
Method Detail |
public void open(java.lang.String device, boolean promiscuous) throws CaptureDeviceOpenException
PacketCaptureCapable
open
in interface PacketCaptureCapable
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.
CaptureDeviceOpenException
public void open(java.lang.String device, int snaplen, boolean promiscuous, int timeout) throws CaptureDeviceOpenException
PacketCaptureCapable
open
in interface PacketCaptureCapable
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.
CaptureDeviceOpenException
public void open(int instance, java.lang.String device, int snaplen, boolean promiscuous, int timeout) throws CaptureDeviceOpenException
CaptureDeviceOpenException
public void openOffline(java.lang.String fileName) throws CaptureFileOpenException
PacketCaptureCapable
openOffline
in interface PacketCaptureCapable
fileName
- the name of the savefile.
CaptureFileOpenException
public void openOffline(int instance, java.lang.String fileName) throws CaptureFileOpenException
CaptureFileOpenException
public void setFilter(java.lang.String filterExpression, boolean optimize) throws InvalidFilterException
PacketCaptureCapable
setFilter
in interface PacketCaptureCapable
filterExpression
- the filter expression. For example,
the expression "host techno" would filter only packets sent or
arriving at the host named techno.optimize
- whether or not the resulting bpf code is optimized
internally by libpcap.
InvalidFilterException
public void setFilter(int instance, java.lang.String filterExpression, boolean optimize) throws InvalidFilterException
InvalidFilterException
public void capture(int count) throws CapturePacketException
PacketCaptureCapable
capture
in interface PacketCaptureCapable
count
- the number of packets to capture.
If count is negative, capture will block forever, unless an exception
is thrown.
CapturePacketException
public void capture(int instance, int count) throws CapturePacketException
CapturePacketException
public CaptureStatistics getStatistics()
PacketCaptureCapable
getStatistics
in interface PacketCaptureCapable
public void close(int instance)
If you are looking for a way to signal an end to a capture session before a set number of packets are received, check out the class SyncPacketCapture.
public void close()
PacketCaptureCapable
close
in interface PacketCaptureCapable
public static java.lang.String[] lookupDevices() throws CaptureDeviceLookupException
CaptureDeviceLookupException
public java.lang.String findDevice() throws CaptureDeviceNotFoundException
PacketCaptureCapable
findDevice
in interface PacketCaptureCapable
CaptureDeviceNotFoundException
public int getNetwork(java.lang.String device) throws CaptureConfigurationException
PacketCaptureCapable
getNetwork
in interface PacketCaptureCapable
device
- the name of the network device.
CaptureConfigurationException
public int getNetmask(java.lang.String device) throws CaptureConfigurationException
PacketCaptureCapable
getNetmask
in interface PacketCaptureCapable
device
- the name of the network device.
CaptureConfigurationException
public int getLinkLayerType() throws CaptureConfigurationException
PacketCaptureCapable
getLinkLayerType
in interface PacketCaptureCapable
CaptureConfigurationException
public int getLinkLayerType(int instance) throws CaptureConfigurationException
CaptureConfigurationException
public int getSnapshotLength()
PacketCaptureCapable
getSnapshotLength
in interface PacketCaptureCapable
public int getSnapshotLength(int instance)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |