Procédure tform1.ftpanalysis (S: String; var nom d'utilisateur, mot de passe, ip, nom de fichier: chaîne; var dirlist: tStringList);
var
I, J: entier;
Struthorisation, Straddr, StrdirFile: chaîne; // Informations d'autorisation
Commencer
Nom d'utilisateur: = 'Anonymous';
Mot de passe: = '[email protected]';
Ip: = '';
straddr: = copy (s, 7, longueur (s) -6); // Obtenez la pièce après ftp: //
// Le format doit être similaire à FTP: // Rec: [email protected]/20050418/abcdef.vox, ou ftp: //192.168.76.11 / ...
i: = pos ('@', s);
si (i> 0) alors
Commencer
Struthorisation: = Copie (S, 7, I-7);
j: = pos (':', struthorization);
si (j <1) alors
sortie;
Nom d'utilisateur: = copie (struthorisation, 1, J-1);
Mot de passe: = copy (struthorisation, j + 1, longueur (struthorisation) -j);
fin ;
i: = pos ('@', straddr);
j: = pos ('/', straddr);
si (j> 0) alors
Ip: = copy (straddr, i + 1, ji-1); // obtenir l'adresse IP
strdirfile: = copy (straddr, j + 1, longueur (straddr) -j);
Dirlist.delimiter: = '/';
Dirlist.DelimitedText: = StrdirFile; // Obtenez la liste des répertoires
Nom de fichier: = Dirlist [Dirlist.Count-1]; // La dernière partie est le nom de fichier
Dirlist.delete (Dirlist.Count-1);
fin ;