|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.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 PacketCaptureCapabledevice - 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 PacketCaptureCapabledevice - 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 PacketCaptureCapablefileName - 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 PacketCaptureCapablefilterExpression - 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 PacketCaptureCapablecount - 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
CapturePacketExceptionpublic CaptureStatistics getStatistics()
PacketCaptureCapable
getStatistics in interface PacketCaptureCapablepublic 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 PacketCaptureCapableCaptureDeviceNotFoundException
public int getNetwork(java.lang.String device)
throws CaptureConfigurationException
PacketCaptureCapable
getNetwork in interface PacketCaptureCapabledevice - the name of the network device.
CaptureConfigurationException
public int getNetmask(java.lang.String device)
throws CaptureConfigurationException
PacketCaptureCapable
getNetmask in interface PacketCaptureCapabledevice - the name of the network device.
CaptureConfigurationException
public int getLinkLayerType()
throws CaptureConfigurationException
PacketCaptureCapable
getLinkLayerType in interface PacketCaptureCapableCaptureConfigurationException
public int getLinkLayerType(int instance)
throws CaptureConfigurationException
CaptureConfigurationExceptionpublic int getSnapshotLength()
PacketCaptureCapable
getSnapshotLength in interface PacketCaptureCapablepublic int getSnapshotLength(int instance)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||