scapy.scapypipes¶
-
class
scapy.scapypipes.ConvertPipe(low_type=None, high_type=None, name=None)¶ Bases:
scapy.pipetool.DrainPackets sent on entry are converted to another type of packet.
+-------------+ >>-|--[convert]--|->> | | >-|--[convert]--|-> +-------------+
See
Packet.convert_packet.-
high_push(msg)¶
-
push(msg)¶
-
-
class
scapy.scapypipes.FDSourceSink(fd, name=None)¶ Bases:
scapy.pipetool.SourceUse a file descriptor as source and sink
+-------------+ >>-| |->> | | >-|-[file desc]-|-> +-------------+
-
deliver()¶
-
fileno()¶
-
push(msg)¶
-
-
class
scapy.scapypipes.Inject3Sink(iface=None, name=None)¶ Bases:
scapy.scapypipes.InjectSink-
start()¶
-
-
class
scapy.scapypipes.InjectSink(iface=None, name=None)¶ Bases:
scapy.pipetool.SinkPackets received on low input are injected to an interface
+-----------+ >>-| |->> | | >-|--[iface] |-> +-----------+
-
push(msg)¶
-
start()¶
-
stop()¶
-
-
class
scapy.scapypipes.RdpcapSource(fname, name=None)¶ Bases:
scapy.pipetool.SourceRead packets from a PCAP file send them to low exit.
+----------+ >>-| |->> | | >-| [pcap]--|-> +----------+
-
check_recv()¶
-
deliver()¶
-
fileno()¶
-
start()¶
-
stop()¶
-
-
class
scapy.scapypipes.SniffSource(iface=None, filter=None, socket=None, name=None)¶ Bases:
scapy.pipetool.SourceRead packets from an interface and send them to low exit.
+-----------+ >>-| |->> | | >-| [iface]--|-> +-----------+
If neither of the
ifaceorsocketparameters are specified, then Scapy will capture from the first network interface.- Parameters
iface – A layer 2 interface to sniff packets from. Mutually exclusive with the
socketparameter.filter – Packet filter to use while capturing. See
L2listen. Not used withsocketparameter.socket – A
SuperSocketto sniff packets from.
-
check_recv()¶
-
deliver()¶
-
fileno()¶
-
start()¶
-
stop()¶
-
class
scapy.scapypipes.TCPConnectPipe(addr='', port=0, name=None)¶ Bases:
scapy.pipetool.SourceTCP connect to addr:port and use it as source and sink
+-------------+ >>-| |->> | | >-|-[addr:port]-|-> +-------------+
-
deliver()¶
-
fileno()¶
-
push(msg)¶
-
start()¶
-
stop()¶
-
-
class
scapy.scapypipes.TCPListenPipe(addr='', port=0, name=None)¶ Bases:
scapy.scapypipes.TCPConnectPipeTCP listen on [addr:]port and use first connection as source and sink; send peer address to high output
+------^------+ >>-| +-[peer]-|->> | / | >-|-[addr:port]-|-> +-------------+
-
deliver()¶
-
push(msg)¶
-
start()¶
-
-
class
scapy.scapypipes.TriggerDrain(f, name=None)¶ Bases:
scapy.pipetool.DrainPass messages and trigger when a condition is met
+------^------+ >>-|-[condition]-|->> | | | >-|-[condition]-|-> +-------------+
-
high_push(msg)¶
-
push(msg)¶
-
-
class
scapy.scapypipes.TriggeredMessage(msg, name=None)¶ Bases:
scapy.pipetool.DrainSend a preloaded message when triggered and trigger in chain
+------^------+ >>-| | /----|->> | |/ | >-|-[ message ]-|-> +------^------+
-
on_trigger(trigmsg)¶
-
-
class
scapy.scapypipes.TriggeredQueueingValve(start_state=True, name=None)¶ Bases:
scapy.pipetool.DrainLet messages alternatively pass or queued, changing on trigger
+------^-------+ >>-|-[pass/queue]-|->> | | | >-|-[pass/queue]-|-> +------^-------+
-
high_push(msg)¶
-
on_trigger(msg)¶
-
push(msg)¶
-
start()¶
-
-
class
scapy.scapypipes.TriggeredSwitch(start_state=True, name=None)¶ Bases:
scapy.pipetool.DrainLet messages alternatively high or low, changing on trigger
+------^------+ >>-|-\ | /-|->> | [up/down] | >-|-/ | \-|-> +------^------+
-
high_push(msg)¶
-
on_trigger(msg)¶
-
push(msg)¶
-
-
class
scapy.scapypipes.TriggeredValve(start_state=True, name=None)¶ Bases:
scapy.pipetool.DrainLet messages alternatively pass or not, changing on trigger
+------^------+ >>-|-[pass/stop]-|->> | | | >-|-[pass/stop]-|-> +------^------+
-
high_push(msg)¶
-
on_trigger(msg)¶
-
push(msg)¶
-
-
class
scapy.scapypipes.UDPDrain(ip='127.0.0.1', port=1234)¶ Bases:
scapy.pipetool.DrainUDP payloads received on high entry are sent over UDP
+-------------+ >>-|--[payload]--|->> | X | >-|----[UDP]----|-> +-------------+
-
high_push(msg)¶
-
push(msg)¶
-
-
class
scapy.scapypipes.WiresharkSink(name=None, linktype=None, args=None)¶ Bases:
scapy.scapypipes.WrpcapSinkStreams
Packetfrom the low entry to Wireshark.Packets are written into a
pcapstream (likeWrpcapSink), and streamed to a new Wireshark process on itsstdin.Wireshark is run with the
-ki -arguments, which cause it to treatstdinas a capture device. Arguments inargswill be appended after this.Extends
WrpcapSink.+----------+ >>-| |->> | | >-|--[pcap] |-> +----------+
- Parameters
linktype (None or int) – See
WrpcapSink.linktype.args (None or list[str]) – See
args.
-
args¶ Additional arguments for the Wireshark process.
This must be either
None(the default), or alistofstr.This attribute has no effect after calling
PipeEngine.start().See wireshark(1) for more details.
-
start()¶
-
class
scapy.scapypipes.WrpcapSink(fname, name=None, linktype=None)¶ Bases:
scapy.pipetool.SinkWrites
Packeton the low entry to apcapfile. Ignores all messages on the high entry.Note
Due to limitations of the
pcapformat, all packets must be of the same link type. This class will not mutate packets to conform with the expected link type.+----------+ >>-| |->> | | >-|--[pcap] |-> +----------+
- Parameters
fname (str) – Filename to write packets to.
linktype (None or int) – See
linktype.
-
linktype¶ Set an explicit link-type (
DLT_) for packets. This must be anintorNone.This is the same as the
wrpcap()linktypeparameter.If
None(the default), the linktype will be auto-detected on the first packet. This field will not be updated with the result of this auto-detection.This attribute has no effect after calling
PipeEngine.start().
-
push(msg)¶
-
start()¶
-
stop()¶