Documentation ¶
Index ¶
- Variables
- func DecodeFTP(data []byte, p gopacket.PacketBuilder) error
- type FTPCommand
- type FTPLayer
- func (f *FTPLayer) CanDecode() gopacket.LayerClass
- func (f *FTPLayer) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
- func (f *FTPLayer) LayerContents() []byte
- func (f *FTPLayer) LayerPayload() []byte
- func (f *FTPLayer) LayerType() gopacket.LayerType
- func (f *FTPLayer) NextLayerType() gopacket.LayerType
- func (f *FTPLayer) Payload() []byte
- func (f *FTPLayer) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
Constants ¶
This section is empty.
Variables ¶
View Source
var LayerTypeFTP = gopacket.RegisterLayerType(147, gopacket.LayerTypeMetadata{Name: "FTP", Decoder: gopacket.DecodeFunc(DecodeFTP)})
Functions ¶
Types ¶
type FTPCommand ¶
type FTPCommand uint16
FTPCommand defines the different commands fo the FTP Protocol
const ( FTPCommandAbor FTPCommand = iota + 1 // ABOR Abort an active file transfer. FTPCommandAcct // ACCT Account information. FTPCommandAdat // ADAT RFC 2228 Authentication/Security Data FTPCommandAllo // ALLO Allocate sufficient disk space to receive a file. FTPCommandAppe // APPE Append (with create) FTPCommandAuth // AUTH RFC 2228 Authentication/Security Mechanism FTPCommandAvbl // AVBL Streamlined FTP Command Extensions Get the available space FTPCommandCcc // CCC RFC 2228 Clear Command Channel FTPCommandCdup // CDUP Change to Parent Directory. FTPCommandConf // CONF RFC 2228 Confidentiality Protection Command FTPCommandCsid // CSID Streamlined FTP Command Extensions Client / Server Identification FTPCommandCwd // CWD RFC 697 Change working directory. FTPCommandDele // DELE Delete file. FTPCommandDsiz // DSIZ Streamlined FTP Command Extensions Get the directory size FTPCommandEnc // ENC RFC 2228 Privacy Protected Channel FTPCommandEprt // EPRT RFC 2428 Specifies an extended address and port to which the server should connect. FTPCommandEpsv // EPSV RFC 2428 Enter extended passive mode. FTPCommandFeat // FEAT RFC 2389 Get the feature list implemented by the server. FTPCommandHelp // HELP Returns usage documentation on a command if specified, else a general help document is returned. FTPCommandHost // HOST RFC 7151 Identify desired virtual host on server, by name. FTPCommandLang // LANG RFC 2640 Language Negotiation FTPCommandList // LIST Returns information of a file or directory if specified, else information of the current working directory is returned. FTPCommandLprt // LPRT RFC 1639 Specifies a long address and port to which the server should connect. FTPCommandLpsv // LPSV RFC 1639 Enter long passive mode. FTPCommandMdtm // MDTM RFC 3659 Return the last-modified time of a specified file. FTPCommandMfct // MFCT The 'MFMT', 'MFCT', and 'MFF' Command Extensions for FTP Modify the creation time of a file. FTPCommandMff // MFF The 'MFMT', 'MFCT', and 'MFF' Command Extensions for FTP Modify fact (the last modification time, creation time, UNIX group/owner/mode of a file). FTPCommandMfmt // MFMT The 'MFMT', 'MFCT', and 'MFF' Command Extensions for FTP Modify the last modification time of a file. FTPCommandMic // MIC RFC 2228 Integrity Protected Command FTPCommandMkd // MKD Make directory. FTPCommandMlsd // MLSD RFC 3659 Lists the contents of a directory if a directory is named. FTPCommandMlst // MLST RFC 3659 Provides data about exactly the object named on its command line, and no others. FTPCommandMode // MODE Sets the transfer mode (Stream, Block, or Compressed). FTPCommandNlst // NLST Returns a list of file names in a specified directory. FTPCommandNoop // NOOP No operation (dummy packet; used mostly on keepalives). FTPCommandOpts // OPTS RFC 2389 Select options for a feature (for example OPTS UTF8 ON). FTPCommandPass // PASS Authentication password. FTPCommandPasv // PASV Enter passive mode. FTPCommandPbsz // PBSZ RFC 2228 Protection Buffer Size FTPCommandPort // PORT Specifies an address and port to which the server should connect. FTPCommandProt // PROT RFC 2228 Data Channel Protection Level. FTPCommandPwd // PWD Print working directory. Returns the current directory of the host. FTPCommandQuit // QUIT Disconnect. FTPCommandRein // REIN Re initializes the connection. FTPCommandRest // REST RFC 3659 Restart transfer from the specified point. FTPCommandRetr // RETR Retrieve a copy of the file FTPCommandRmd // RMD Remove a directory. FTPCommandRmda // RMDA Streamlined FTP Command Extensions Remove a directory tree FTPCommandRnfr // RNFR Rename from. FTPCommandRnto // RNTO Rename to. FTPCommandSite // SITE Sends site specific commands to remote server (like SITE IDLE 60 or SITE UMASK 002). Inspect SITE HELP output for complete list of supported commands. FTPCommandSize // SIZE RFC 3659 Return the size of a file. FTPCommandSmnt // SMNT Mount file structure. FTPCommandSpsv // SPSV FTP Extension Allowing IP Forwarding (NATs) Use single port passive mode (only one TCP port number for both control connections and passive-mode data connections) FTPCommandStat // STAT Returns the current status. FTPCommandStor // STOR Accept the data and to store the data as a file at the server site FTPCommandStou // STOU Store file uniquely. FTPCommandStru // STRU Set file transfer structure. FTPCommandSyst // SYST Return system type. FTPCommandThmb // THMB Streamlined FTP Command Extensions Get a thumbnail of a remote image file FTPCommandType // TYPE Sets the transfer mode (ASCII/Binary). FTPCommandUser // USER Authentication username. FTPCommandXcup // XCUP RFC 775 Change to the parent of the current working directory FTPCommandXmkd // XMKD RFC 775 Make a directory FTPCommandXpwd // XPWD RFC 775 Print the current working directory FTPCommandXrcp // XRCP RFC 743 FTPCommandXrmd // XRMD RFC 775 Remove the directory FTPCommandXrsq // XRSQ RFC 743 FTPCommandXsem // XSEM RFC 737 Send, mail if cannot FTPCommandXsen // XSEN RFC 737 Send to terminal )
Here are all the FTP commands
func GetFTPCommand ¶
func GetFTPCommand(command string) (FTPCommand, error)
GetFTPCommand returns the constant of a FTP command from its string
func (FTPCommand) String ¶
func (fc FTPCommand) String() string
type FTPLayer ¶
type FTPLayer struct { //BaseLayer Contents []byte Command FTPCommand CommandArg string IsResponse bool ResponseCode int ResponseStatus string Delimiter string }
FTP object contains information about an FTP packet
func (*FTPLayer) CanDecode ¶
func (f *FTPLayer) CanDecode() gopacket.LayerClass
CanDecode returns gopacket.LayerTypeFTP
func (*FTPLayer) DecodeFromBytes ¶
func (f *FTPLayer) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error
DecodeFromBytes decodes the slice into the FTP struct.
func (*FTPLayer) LayerContents ¶
func (*FTPLayer) LayerPayload ¶
func (*FTPLayer) NextLayerType ¶
NextLayerType returns gopacket.LayerTypeZero
func (*FTPLayer) SerializeTo ¶
func (f *FTPLayer) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error
SerializeTo writes the serialized form of this layer into the SerializationBuffer, implementing gopacket.SerializableLayer.
Click to show internal directories.
Click to hide internal directories.