scapy.layers.tftp

TFTP (Trivial File Transfer Protocol).

class scapy.layers.tftp.TFTP(_pkt, /, *, op=1)[source]

Bases: Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               OP              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            Fig. TFTP                             
TFTP fields

op

ShortEnumField

1

payload_guess

Possible sublayers: TFTP_ACK, TFTP_DATA, TFTP_ERROR, TFTP_OACK, TFTP_RRQ, TFTP_WRQ

class scapy.layers.tftp.TFTP_ACK(_pkt, /, *, block=0)[source]

Bases: Packet

aliastypes
answers(other)[source]
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             BLOCK             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. TFTP_ACK                           
TFTP_ACK fields

block

ShortField

0

mysummary()[source]
class scapy.layers.tftp.TFTP_DATA(_pkt, /, *, block=0)[source]

Bases: Packet

aliastypes
answers(other)[source]
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             BLOCK             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. TFTP_DATA                          
TFTP_DATA fields

block

ShortField

0

mysummary()[source]
class scapy.layers.tftp.TFTP_ERROR(_pkt, /, *, errorcode=0, errormsg=b'')[source]

Bases: Packet

aliastypes
answers(other)[source]
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           ERRORCODE           |            ERRORMSG           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. TFTP_ERROR                          
TFTP_ERROR fields

errorcode

ShortEnumField

0

errormsg

StrNullField

b''

mysummary()[source]
class scapy.layers.tftp.TFTP_OACK(_pkt, /)[source]

Bases: Packet

aliastypes
answers(other)[source]
fields_desc
payload_guess

Possible sublayers: TFTP_Options

class scapy.layers.tftp.TFTP_Option(_pkt, /, *, oname=b'', value=b'')[source]

Bases: Packet

aliastypes
extract_padding(pkt)[source]
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             ONAME             |             VALUE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. TFTP_Option                         
TFTP_Option fields

oname

StrNullField

b''

value

StrNullField

b''

class scapy.layers.tftp.TFTP_Options(_pkt, /, *, options=[])[source]

Bases: Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            OPTIONS            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. TFTP_Options                         
TFTP_Options fields

options

PacketListField

[]

class scapy.layers.tftp.TFTP_RRQ(_pkt, /, *, filename=b'', mode=b'octet')[source]

Bases: Packet

aliastypes
answers(other)[source]
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            FILENAME           |              MODE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. TFTP_RRQ                           
TFTP_RRQ fields

filename

StrNullField

b''

mode

StrNullField

b'octet'

mysummary()[source]
payload_guess

Possible sublayers: TFTP_Options

class scapy.layers.tftp.TFTP_RRQ_server(self, store=None, joker=None, dir=None, ip=None, sport=None, serve_one=False, **kargs)[source]

Bases: Automaton

END(*args: ATMT, **kargs: Any) NewStateRequested[source]
RECEIVED_ACK(*args: ATMT, **kargs: Any) NewStateRequested[source]
RECEIVED_RRQ(*args: ATMT, **kargs: Any) NewStateRequested[source]
SEND_FILE(*args: ATMT, **kargs: Any) NewStateRequested[source]
WAIT_RRQ(*args: ATMT, **kargs: Any) NewStateRequested[source]
actions: Dict[str, List[_StateWrapper]] = {'data_remaining': [], 'file_in_store': [], 'file_not_found': [<function TFTP_RRQ_server.send_error>], 'no_more_data': [], 'receive_rrq': [], 'received_ack': [], 'timeout_waiting_ack': []}
breakpoints: Set[_StateWrapper]
conditions: Dict[str, List[_StateWrapper]] = {'END': [], 'RECEIVED_ACK': [<function TFTP_RRQ_server.no_more_data>, <function TFTP_RRQ_server.data_remaining>], 'RECEIVED_RRQ': [<function TFTP_RRQ_server.file_in_store>, <function TFTP_RRQ_server.file_not_found>], 'SEND_FILE': [], 'WAIT_RRQ': []}
data_remaining()[source]
eofs: Dict[str, _StateWrapper] = {}
file_in_store()[source]
file_not_found()[source]
initial_states: List[_StateWrapper] = [<function ATMT.state.<locals>.deco.<locals>._state_wrapper>]
intercepted_packet: None | Packet
interception_points: Set[_StateWrapper]
ioevents: Dict[str, List[_StateWrapper]] = {'END': [], 'RECEIVED_ACK': [], 'RECEIVED_RRQ': [], 'SEND_FILE': [], 'WAIT_RRQ': []}
ionames: List[str] = []
iosupersockets: List[SuperSocket] = []
listen_sock: SuperSocket | None
master_filter(pkt)[source]
no_more_data()[source]
packets: PacketList
parse_args(store=None, joker=None, dir=None, ip=None, sport=None, serve_one=False, **kargs)[source]
receive_rrq(pkt)[source]
received_ack(pkt)[source]
recv_conditions: Dict[str, List[_StateWrapper]] = {'END': [], 'RECEIVED_ACK': [], 'RECEIVED_RRQ': [], 'SEND_FILE': [<function TFTP_RRQ_server.received_ack>], 'WAIT_RRQ': [<function TFTP_RRQ_server.receive_rrq>]}
send_error()[source]
send_sock: SuperSocket | None
states: Dict[str, _StateWrapper] = {'END': <function ATMT.state.<locals>.deco.<locals>._state_wrapper>, 'RECEIVED_ACK': <function ATMT.state.<locals>.deco.<locals>._state_wrapper>, 'RECEIVED_RRQ': <function ATMT.state.<locals>.deco.<locals>._state_wrapper>, 'SEND_FILE': <function ATMT.state.<locals>.deco.<locals>._state_wrapper>, 'WAIT_RRQ': <function ATMT.state.<locals>.deco.<locals>._state_wrapper>}
stop_state: _StateWrapper | None = None
threadid: int | None
timeout: Dict[str, _TimerList] = {'END': [], 'RECEIVED_ACK': [], 'RECEIVED_RRQ': [], 'SEND_FILE': [<Timer 0.000000(3.000000)>], 'WAIT_RRQ': []}
timeout_waiting_ack()[source]
class scapy.layers.tftp.TFTP_WRQ(_pkt, /, *, filename=b'', mode=b'octet')[source]

Bases: Packet

aliastypes
answers(other)[source]
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            FILENAME           |              MODE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. TFTP_WRQ                           
TFTP_WRQ fields

filename

StrNullField

b''

mode

StrNullField

b'octet'

mysummary()[source]
payload_guess

Possible sublayers: TFTP_Options

class scapy.layers.tftp.TFTP_WRQ_server(self, ip=None, sport=None, *args, **kargs)[source]

Bases: Automaton

BEGIN(*args: ATMT, **kargs: Any) NewStateRequested[source]
DATA(*args: ATMT, **kargs: Any) NewStateRequested[source]
END(*args: ATMT, **kargs: Any) NewStateRequested[source]
WAIT_DATA(*args: ATMT, **kargs: Any) NewStateRequested[source]
ack_WRQ(pkt)[source]
ack_data()[source]
actions: Dict[str, List[_StateWrapper]] = {'receive_WRQ': [<function TFTP_WRQ_server.ack_WRQ>], 'receive_data': [<function TFTP_WRQ_server.ack_data>], 'resend_ack': []}
breakpoints: Set[_StateWrapper]
conditions: Dict[str, List[_StateWrapper]] = {'BEGIN': [], 'DATA': [], 'END': [], 'WAIT_DATA': []}
eofs: Dict[str, _StateWrapper] = {}
initial_states: List[_StateWrapper] = [<function ATMT.state.<locals>.deco.<locals>._state_wrapper>]
intercepted_packet: None | Packet
interception_points: Set[_StateWrapper]
ioevents: Dict[str, List[_StateWrapper]] = {'BEGIN': [], 'DATA': [], 'END': [], 'WAIT_DATA': []}
ionames: List[str] = []
iosupersockets: List[SuperSocket] = []
listen_sock: SuperSocket | None
master_filter(pkt)[source]
packets: PacketList
parse_args(ip=None, sport=None, *args, **kargs)[source]
receive_WRQ(pkt)[source]
receive_data(pkt)[source]
recv_conditions: Dict[str, List[_StateWrapper]] = {'BEGIN': [<function TFTP_WRQ_server.receive_WRQ>], 'DATA': [], 'END': [], 'WAIT_DATA': [<function TFTP_WRQ_server.receive_data>]}
resend_ack()[source]
send_sock: SuperSocket | None
states: Dict[str, _StateWrapper] = {'BEGIN': <function ATMT.state.<locals>.deco.<locals>._state_wrapper>, 'DATA': <function ATMT.state.<locals>.deco.<locals>._state_wrapper>, 'END': <function ATMT.state.<locals>.deco.<locals>._state_wrapper>, 'WAIT_DATA': <function ATMT.state.<locals>.deco.<locals>._state_wrapper>}
stop_state: _StateWrapper | None = None
threadid: int | None
timeout: Dict[str, _TimerList] = {'BEGIN': [], 'DATA': [], 'END': [], 'WAIT_DATA': [<Timer 0.000000(1.000000)>]}
class scapy.layers.tftp.TFTP_read(self, filename, server, sport=None, port=69, **kargs)[source]

Bases: Automaton

BEGIN(*args: ATMT, **kargs: Any) NewStateRequested[source]
END(*args: ATMT, **kargs: Any) NewStateRequested[source]
ERROR(*args: ATMT, **kargs: Any) NewStateRequested[source]
RECEIVING(*args: ATMT, **kargs: Any) NewStateRequested[source]
WAITING(*args: ATMT, **kargs: Any) NewStateRequested[source]
actions: Dict[str, List[_StateWrapper]] = {'receive_data': [<function TFTP_read.send_ack>], 'receive_error': [], 'timeout_waiting': [<function TFTP_read.retransmit_last_packet>]}
breakpoints: Set[_StateWrapper]
conditions: Dict[str, List[_StateWrapper]] = {'BEGIN': [], 'END': [], 'ERROR': [], 'RECEIVING': [], 'WAITING': []}
eofs: Dict[str, _StateWrapper] = {}
initial_states: List[_StateWrapper] = [<function ATMT.state.<locals>.deco.<locals>._state_wrapper>]
intercepted_packet: None | Packet
interception_points: Set[_StateWrapper]
ioevents: Dict[str, List[_StateWrapper]] = {'BEGIN': [], 'END': [], 'ERROR': [], 'RECEIVING': [], 'WAITING': []}
ionames: List[str] = []
iosupersockets: List[SuperSocket] = []
listen_sock: SuperSocket | None
master_filter(pkt)[source]
packets: PacketList
parse_args(filename, server, sport=None, port=69, **kargs)[source]
receive_data(pkt)[source]
receive_error(pkt)[source]
recv_conditions: Dict[str, List[_StateWrapper]] = {'BEGIN': [], 'END': [], 'ERROR': [], 'RECEIVING': [], 'WAITING': [<function TFTP_read.receive_data>, <function TFTP_read.receive_error>]}
retransmit_last_packet()[source]
send_ack()[source]
send_sock: SuperSocket | None
states: Dict[str, _StateWrapper] = {'BEGIN': <function ATMT.state.<locals>.deco.<locals>._state_wrapper>, 'END': <function ATMT.state.<locals>.deco.<locals>._state_wrapper>, 'ERROR': <function ATMT.state.<locals>.deco.<locals>._state_wrapper>, 'RECEIVING': <function ATMT.state.<locals>.deco.<locals>._state_wrapper>, 'WAITING': <function ATMT.state.<locals>.deco.<locals>._state_wrapper>}
stop_state: _StateWrapper | None = None
threadid: int | None
timeout: Dict[str, _TimerList] = {'BEGIN': [], 'END': [], 'ERROR': [], 'RECEIVING': [], 'WAITING': [<Timer 0.000000(3.000000)>]}
timeout_waiting()[source]
class scapy.layers.tftp.TFTP_write(self, filename, data, server, sport=None, port=69, **kargs)[source]

Bases: Automaton

BEGIN(*args: ATMT, **kargs: Any) NewStateRequested[source]
END(*args: ATMT, **kargs: Any) NewStateRequested[source]
ERROR(*args: ATMT, **kargs: Any) NewStateRequested[source]
SEND_DATA(*args: ATMT, **kargs: Any) NewStateRequested[source]
WAITING_ACK(*args: ATMT, **kargs: Any) NewStateRequested[source]
actions: Dict[str, List[_StateWrapper]] = {'received_ack': [], 'received_error': [], 'timeout_waiting': [<function TFTP_write.retransmit_last_packet>]}
breakpoints: Set[_StateWrapper]
conditions: Dict[str, List[_StateWrapper]] = {'BEGIN': [], 'END': [], 'ERROR': [], 'SEND_DATA': [], 'WAITING_ACK': []}
eofs: Dict[str, _StateWrapper] = {}
initial_states: List[_StateWrapper] = [<function ATMT.state.<locals>.deco.<locals>._state_wrapper>]
intercepted_packet: None | Packet
interception_points: Set[_StateWrapper]
ioevents: Dict[str, List[_StateWrapper]] = {'BEGIN': [], 'END': [], 'ERROR': [], 'SEND_DATA': [], 'WAITING_ACK': []}
ionames: List[str] = []
iosupersockets: List[SuperSocket] = []
listen_sock: SuperSocket | None
master_filter(pkt)[source]
packets: PacketList
parse_args(filename, data, server, sport=None, port=69, **kargs)[source]
received_ack(pkt)[source]
received_error(pkt)[source]
recv_conditions: Dict[str, List[_StateWrapper]] = {'BEGIN': [], 'END': [], 'ERROR': [], 'SEND_DATA': [], 'WAITING_ACK': [<function TFTP_write.received_ack>, <function TFTP_write.received_error>]}
retransmit_last_packet()[source]
send_sock: SuperSocket | None
states: Dict[str, _StateWrapper] = {'BEGIN': <function ATMT.state.<locals>.deco.<locals>._state_wrapper>, 'END': <function ATMT.state.<locals>.deco.<locals>._state_wrapper>, 'ERROR': <function ATMT.state.<locals>.deco.<locals>._state_wrapper>, 'SEND_DATA': <function ATMT.state.<locals>.deco.<locals>._state_wrapper>, 'WAITING_ACK': <function ATMT.state.<locals>.deco.<locals>._state_wrapper>}
stop_state: _StateWrapper | None = None
threadid: int | None
timeout: Dict[str, _TimerList] = {'BEGIN': [], 'END': [], 'ERROR': [], 'SEND_DATA': [], 'WAITING_ACK': [<Timer 0.000000(3.000000)>]}
timeout_waiting()[source]