亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.~pa

?? his an ecapsulation of the ICS - Internet Component Suite. ICS can be found at : http://users.swing
?? ~PA
?? 第 1 頁 / 共 2 頁
字號:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls, ImgList, ToolWin, Menus, Buttons, FtpSrv,FtpSrvC,
  Spin,FileCtrl, ExtCtrls,Winsock;

type
  TfrmMain = class(TForm)
    StatusBar1: TStatusBar;
    ImageList1: TImageList;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    ListView1: TListView;
    RichEdit1: TRichEdit;
    MainMenu1: TMainMenu;
    PopupMenu1: TPopupMenu;
    TabSheet3: TTabSheet;
    TabSheet4: TTabSheet;
    FtpServer1: TFtpServer;
    Label4: TLabel;
    txtBanner: TEdit;
    SpinEdit1: TSpinEdit;
    Label5: TLabel;
    ImageList2: TImageList;
    File1: TMenuItem;
    StartFTP1: TMenuItem;
    StopFTP1: TMenuItem;
    N1: TMenuItem;
    Exit1: TMenuItem;
    Users1: TMenuItem;
    Help1: TMenuItem;
    About1: TMenuItem;
    N2: TMenuItem;
    Help2: TMenuItem;
    BootUser2: TMenuItem;
    ImageList3: TImageList;
    ToolBar2: TToolBar;
    ListView2: TListView;
    ImageList4: TImageList;
    ToolButton10: TToolButton;
    ToolButton12: TToolButton;
    ToolButton13: TToolButton;
    ToolButton14: TToolButton;
    Panel1: TPanel;
    Label1: TLabel;
    txtUser: TEdit;
    Label2: TLabel;
    txtPassword: TEdit;
    Label3: TLabel;
    txtRoot: TEdit;
    BitBtn1: TBitBtn;
    chkDelete: TCheckBox;
    chkRename: TCheckBox;
    chkDownload: TCheckBox;
    chkUpload: TCheckBox;
    Panel2: TPanel;
    Timer1: TTimer;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    BitBtn4: TBitBtn;
    SpinEdit2: TSpinEdit;
    Label6: TLabel;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton5: TToolButton;
    ToolButton4: TToolButton;
    ToolBar3: TToolBar;
    ImageList5: TImageList;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    SaveDialog1: TSaveDialog;
    TheServer1: TMenuItem;
    ActivityLog1: TMenuItem;
    AllowedUsers1: TMenuItem;
    ExtraOptions1: TMenuItem;
    procedure ToolButton1Click(Sender: TObject);
    procedure FtpServer1ChangeDirectory(Sender: TObject;
      Client: TFtpCtrlSocket; Directory: TFtpString; var Allowed: Boolean);
    procedure FtpServer1Authenticate(Sender: TObject;
      Client: TFtpCtrlSocket; UserName, Password: TFtpString;
      var Authenticated: Boolean);
    procedure FtpServer1ValidateDele(Sender: TObject;
      Client: TFtpCtrlSocket; var FilePath: TFtpString;
      var Allowed: Boolean);
    procedure FtpServer1ValidateGet(Sender: TObject;
      Client: TFtpCtrlSocket; var FilePath: TFtpString;
      var Allowed: Boolean);
    procedure FtpServer1ValidatePut(Sender: TObject;
      Client: TFtpCtrlSocket; var FilePath: TFtpString;
      var Allowed: Boolean);
    procedure FtpServer1ClientConnect(Sender: TObject;
      Client: TFtpCtrlSocket; Error: Word);
    procedure FtpServer1ClientDisconnect(Sender: TObject;
      Client: TFtpCtrlSocket; Error: Word);
    procedure FtpServer1ClientCommand(Sender: TObject;
      Client: TFtpCtrlSocket; var Keyword, Params, Answer: TFtpString);
    procedure FtpServer1Stop(Sender: TObject);
    procedure FtpServer1Start(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ToolButton7Click(Sender: TObject);
    function AddClient(sUser : String; sAction : String; sDir : String) : boolean;
    procedure ModifyClient(sUser : String;  sAction : String; sDir : String);
    procedure RemoveClient(sUser : String);
    function isClientThere(sUser : string): Boolean;
    function isClient(sUser : String; sPass : String;Client: TFtpCtrlSocket): string;
    procedure getClientpermissions(sUser : String);
    procedure FormCreate(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure TabSheet3Exit(Sender: TObject);
    procedure TabSheet3Enter(Sender: TObject);
    function getClientRootDir(sUser : string): String;
    procedure Timer1Timer(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure ToolButton10Click(Sender: TObject);
    procedure ToolButton13Click(Sender: TObject);
    procedure ToolButton14Click(Sender: TObject);
    procedure LoadUserList;
    procedure SaveUserList;
    procedure ListView2SelectItem(Sender: TObject; Item: TListItem;
      Selected: Boolean);
    procedure EditClient;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure ListView2MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
      procedure bSaveUserList;
    procedure ToolButton9Click(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure TheServer1Click(Sender: TObject);
    procedure ActivityLog1Click(Sender: TObject);
    procedure AllowedUsers1Click(Sender: TObject);
    procedure ExtraOptions1Click(Sender: TObject);
    function IsAllowedTo(sUser : String; IAction : Integer) : Boolean;
    procedure Help2Click(Sender: TObject);
    procedure About1Click(Sender: TObject);
    procedure Exit1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;
  bConnected: Boolean;
  UserFile: String;
  cliDir: String;
implementation

uses NewUser, Dir, About;

{$R *.DFM}
function GetLocalIP : string;
// 
// Return  computer磗 IP if you are connected in a network
// Declare  Winsock in the uses clause 
// 
type 
    TaPInAddr = array [0..10] of PInAddr; 
    PaPInAddr = ^TaPInAddr; 
var 
    phe : PHostEnt; 
    pptr : PaPInAddr; 
    Buffer : array [0..63] of char; 
    I : Integer; 
    GInitData : TWSADATA; 
begin 
    WSAStartup($101, GInitData); 
    Result := ''; 
    GetHostName(Buffer, SizeOf(Buffer)); 
    phe :=GetHostByName(buffer); 
    if phe = nil then 
    begin 
       Exit; 
    end; 
    pptr := PaPInAddr(Phe^.h_addr_list); 
    I := 0; 
    while pptr^[I] <> nil do 
    begin 
       result:=StrPas(inet_ntoa(pptr^[I]^)); 
       Inc(I); 
    end; 
    WSACleanup; 
end; 
function bMakeBoolean(sStr : String): Boolean;
begin
if lowercase(sstr) = 'no' then
begin
bMakeBoolean := false;
end
else
begin
bMakeBoolean := true;
end;

end;

function bMakeString(bBool : Boolean): String;
begin
if bbool = false then
begin
bMakeString := 'No'
end
else
begin
bMakeString := 'Yes';
end;

end;

procedure Logit(sTXT : String);
begin
try
frmMain.RichEdit1.Lines.Insert(0,DateTimeToStr(Now) + ' - ' + stxt);
except
frmMain.RichEdit1.Lines.Clear;
frmMain.RichEdit1.Lines.Insert(0,DateTimeToStr(Now) + ' - ' + stxt);
end;


end;

function AppPath: String ;
//get the path of this file
begin
AppPath := ExtractFilePath(application.ExeName);
end;
function FileDelete(sFile :String):Boolean ;
begin
if FileExists(sFile) = True then
FileDelete := DeleteFile(sfile)
else
FileDelete := False;
end;
function DirDel(sPath : String):Boolean ;
begin
if DirectoryExists(sPath) = True then
DirDel := RemoveDir(sPath)
else
dirdel := false;
end;
function FileORDirDel(sPath : String; sFile : String): Boolean;
begin
if StrLen(pChar(sfile)) >0 then
//it is a file
FileORDirDel := filedelete(spath + sfile)
else
//it is a dir
FileORDirDel := dirdel(spath);
end;
function FileORDirRNTO(sPath : String; sFile : String): Boolean;
Var
iPos : Integer;
begin
 ipos := pos('.',sFile);
 if ipos > 0 then
//it is a file - handled by ftp
FileORDirRNTO := True
 else
// it is a directory - manual rename  c:\test\ / 222
     if DirectoryExists(sPath) = True then
     begin
     FileORDirRNTO := MoveFile(pchar(spath),pchar(sfile));
     end
     else
     begin
     FileORDirRNTO := false;
     end;



end;
function CheckStartDir(sDir : String):Boolean ;
begin
   //make sure it is a dir
   if sdir = '' then
   CheckStartDir := false;

   //it is a dir, check it
   if sdir <> '' then
   begin
       CheckStartDir := DirectoryExists(sdir);
   end;
end;

procedure FTPStart;
begin
frmmain.FtpServer1.Start;
Logit('FTP Started');
end;

procedure FTPStop;
begin
if bConnected = true then
begin
if MessageDlg('Warning stoping the FTP server will disconnect any clients!' + chr(10) + 'Are you sure you want to stop the FTP server?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
  begin
frmmain.FtpServer1.DisconnectAll;
frmmain.FtpServer1.Stop;
Logit('FTP Stopped');
  end;
end;

end;

function GetLineEle(sTmp : String; Delimi1 : String; Delimi2 : String): String;
 Var
Ipos :Integer;
Epos : Integer;
begin
try
ipos := pos(Delimi1,stmp);
if ipos = 0  then
begin
 GetLineEle := '';
 exit;
end;
epos := pos(Delimi2,stmp);
if epos = 0  then
begin
 GetLineEle := '';
 exit;
end;
ipos := ipos + Length(Delimi1);

GetLineEle := copy(stmp,ipos ,epos - ipos);
except
GetLineEle := '';
end;
end;

function QualifyDir(sDir : String):String ;
  Var
Ipos :Integer;
TmpDir : String;
begin
  ipos := StrLen(pchar(sdir));
  tmpdir := copy(sdir,ipos,strlen(pchar(sdir)));
  if tmpdir <> '\' then
  QualifyDir := sdir + '\';
  if tmpdir = '\' then
  QualifyDir := sdir;
end;

procedure TfrmMain.ToolButton1Click(Sender: TObject);
begin
ftpstart;
end;

procedure TfrmMain.FtpServer1ChangeDirectory(Sender: TObject;
  Client: TFtpCtrlSocket; Directory: TFtpString; var Allowed: Boolean);
begin
{ It the right place to check if a user has access to a given directory }
    { The example below disable C:\ access to non root user.                }
    //if (UpperCase(Client.UserName) <> 'ROOT') and
    //   (UpperCase(Client.Directory) = 'C:\') then
    //   Allowed := FALSE;

    if length(Client.Directory) < length(client.HomeDir) then begin
    Allowed := FALSE;
    exit;
    end;
//logit(client.username + ' CD ' +
    Allowed := TRUE;
end;

procedure TfrmMain.FtpServer1Authenticate(Sender: TObject;
  Client: TFtpCtrlSocket; UserName, Password: TFtpString;
  var Authenticated: Boolean);
begin
//authorize client


if isClientThere(UserName) = false then
begin
clidir := isClient(username,password,client);

     if clidir <> '' then
     begin

         //add the client to the list
        Authenticated := true;
        client.HomeDir := clidir;
        //client.FileName :='';
     end;
end
else
begin

//do not let them in multiple client error
Authenticated := false;
//client.Close;
end;
statusbar1.Panels[1].text := 'Number of Users: ' + inttostr(listview1.Items.count);
//Authenticated := True;
//client.HomeDir := 'd:\test\';
//client.FileName :='';
end;

procedure TfrmMain.FtpServer1ValidateDele(Sender: TObject;
  Client: TFtpCtrlSocket; var FilePath: TFtpString; var Allowed: Boolean);
begin
{
if CheckBox5.Checked = FALSE then begin
allowed := FALSE;
end;
}
end;

procedure TfrmMain.FtpServer1ValidateGet(Sender: TObject;
  Client: TFtpCtrlSocket; var FilePath: TFtpString; var Allowed: Boolean);
begin
{
if CheckBox5.Checked = FALSE then begin
allowed := FALSE;
end;
}
end;

procedure TfrmMain.FtpServer1ValidatePut(Sender: TObject;
  Client: TFtpCtrlSocket; var FilePath: TFtpString; var Allowed: Boolean);
begin
{
if CheckBox5.Checked = FALSE then begin
allowed := FALSE;
end;
}
end;

procedure TfrmMain.FtpServer1ClientConnect(Sender: TObject;
  Client: TFtpCtrlSocket; Error: Word);
begin
//do the connection here
Logit(client.UserName + ' - ' + client.DataSocket.Addr + ' Connected');
end;

procedure TfrmMain.FtpServer1ClientDisconnect(Sender: TObject;
  Client: TFtpCtrlSocket; Error: Word);
begin
//do the disconnection here
RemoveClient(client.UserName);
statusbar1.Panels[1].text := 'Number of Users: ' + inttostr(listview1.Items.count);
Logit(client.UserName + ' - ' + client.DataSocket.Addr + ' Disconnected');
end;

procedure TfrmMain.FtpServer1ClientCommand(Sender: TObject;
  Client: TFtpCtrlSocket; var Keyword, Params, Answer: TFtpString);
var
 hGood : Boolean;
 SFD1 : String;
 SFD2 : String;
  begin
  hgood:=False;

{
We are looking for the following commands
PUT - upload
STOR - Upload
GET - download
RETR - download
DELE - delete
RNFR - rename from

}
ModifyClient(client.username,Keyword,client.directory);
Logit(client.UserName + ' - ' + client.DataSocket.Addr + ' ' + Keyword + ' ' + client.directory  + params);
//DELE = delete
//if rename then begin
if (Keyword = 'PUT') or (Keyword = 'STOR') then
begin
   if IsAllowedTo(client.username,2) = false then
   begin
    client.SendAnswer('501 - Not Allowed!');
     exit;
   end;
end;

if (Keyword = 'GET') or (Keyword = 'RETR') then
begin
if IsAllowedTo(client.username,3) = false then
   begin
    client.SendAnswer('501 - Not Allowed!');
     exit;
   end;
end;

//if rename then begin
//RNTO = rename  from
if KeyWord ='RNFR' then
begin
if IsAllowedTo(client.username,4) = false then
   begin
    client.SendAnswer('501 - Not Allowed!');
     exit;
   end;
sfd1 := client.directory  + params;

end;
//RNTO = rename to
if Keyword = 'RNTO' then
   begin
   if IsAllowedTo(client.username,4) = false then
   begin
    client.SendAnswer('501 - Not Allowed!');
     exit;
   end;
 sfd2 := client.directory  + params;
 hgood := FileORDirRNTO(sfd1,sfd2);
 sfd1 := '';
 sfd2 := '';
end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线免费不卡视频| 亚洲欧洲精品一区二区三区不卡| 精品国产精品网麻豆系列| 国产精品久久久久影院色老大| 五月天欧美精品| 97久久超碰国产精品| 精品成人一区二区| 亚洲成人第一页| 91同城在线观看| 久久精品在线免费观看| 人禽交欧美网站| 91理论电影在线观看| 中国av一区二区三区| 男女视频一区二区| 欧美精品18+| 一区二区免费看| 91亚洲男人天堂| 国产精品国产精品国产专区不蜜| 黄色小说综合网站| 日韩一区二区在线观看视频播放| 亚洲午夜影视影院在线观看| 91在线免费看| 综合久久给合久久狠狠狠97色| 国产成人av电影在线| 欧美va天堂va视频va在线| 亚洲va在线va天堂| 欧美日韩精品欧美日韩精品 | 欧美成人精品二区三区99精品| 国产精品进线69影院| 国产成a人无v码亚洲福利| 久久久久97国产精华液好用吗| 美女精品自拍一二三四| 日韩一区二区三区免费观看| 婷婷丁香激情综合| 91精品国产综合久久久蜜臀图片| 视频一区二区三区在线| 欧美日韩五月天| 亚洲丶国产丶欧美一区二区三区| 欧美性生交片4| 亚洲午夜久久久久久久久电影网| 在线免费亚洲电影| 亚洲电影中文字幕在线观看| 欧美日韩精品福利| 毛片一区二区三区| 久久综合久色欧美综合狠狠| 国产成人亚洲精品狼色在线| 国产日产精品一区| 91在线视频播放| 亚洲国产精品天堂| 欧美午夜精品免费| 日本视频一区二区三区| 日韩三级免费观看| 国产电影精品久久禁18| 亚洲人成影院在线观看| 欧美日韩你懂的| 国产一区二区视频在线| 国产女主播一区| 色激情天天射综合网| 五月综合激情日本mⅴ| 欧美成人在线直播| 成人免费av资源| 亚洲午夜影视影院在线观看| 日韩三级视频中文字幕| aaa欧美日韩| 日韩成人伦理电影在线观看| 久久久精品2019中文字幕之3| 成人午夜电影小说| 性久久久久久久久久久久| 2023国产精品自拍| 91女厕偷拍女厕偷拍高清| 三级一区在线视频先锋| 国产欧美一区视频| 欧美亚洲一区二区在线| 精品亚洲成av人在线观看| 国产精品精品国产色婷婷| 91麻豆精品国产91久久久久久久久| 国产成人自拍高清视频在线免费播放| 亚洲视频资源在线| 久久亚洲影视婷婷| 欧美三日本三级三级在线播放| 韩国成人福利片在线播放| 亚洲另类在线制服丝袜| 久久久美女毛片| 欧美日韩一区在线| 成人av手机在线观看| 毛片一区二区三区| 亚洲综合一二三区| 欧美国产一区在线| 日韩写真欧美这视频| 欧美性大战久久久久久久蜜臀| 国产福利一区二区| 蜜桃视频在线观看一区| 午夜一区二区三区在线观看| 一色屋精品亚洲香蕉网站| 欧美白人最猛性xxxxx69交| 色噜噜狠狠色综合中国| 国产精品亚洲午夜一区二区三区| 午夜精品一区二区三区免费视频| 欧美激情综合网| 久久中文娱乐网| 精品少妇一区二区三区视频免付费 | 亚洲视频资源在线| 国产欧美日韩激情| 精品日韩成人av| 91精品欧美综合在线观看最新| 一本久道久久综合中文字幕| 成a人片亚洲日本久久| 国产乱人伦偷精品视频免下载| 日韩电影在线观看网站| 午夜精品久久久久影视| 亚洲网友自拍偷拍| 亚洲国产视频一区二区| 一区二区三区鲁丝不卡| 亚洲图片另类小说| 亚洲国产成人精品视频| 一区二区在线观看av| 一区二区三区美女| 亚洲国产精品尤物yw在线观看| 亚洲黄网站在线观看| 亚洲免费资源在线播放| 一区二区三区在线视频免费观看| 亚洲日本欧美天堂| 亚洲欧美日本在线| 一区二区三区资源| 亚洲国产另类av| 美女视频一区二区三区| 国产米奇在线777精品观看| 国产永久精品大片wwwapp| 国产乱码精品1区2区3区| 国产成人精品影视| 99精品欧美一区| 欧美最猛性xxxxx直播| 制服丝袜国产精品| xf在线a精品一区二区视频网站| 久久久三级国产网站| 欧美激情综合网| 亚洲自拍欧美精品| 蜜臀久久99精品久久久久宅男| 国产在线不卡一区| 色综合久久久久网| 欧美日本一区二区三区| 日韩精品一区二区三区swag| 国产香蕉久久精品综合网| 日韩理论片一区二区| 视频在线在亚洲| 国产麻豆午夜三级精品| 99re66热这里只有精品3直播| 欧美日韩一区二区三区在线| 精品理论电影在线观看| 一区在线播放视频| 视频一区欧美日韩| 国产精品91一区二区| 在线欧美日韩精品| 久久久久9999亚洲精品| 亚洲老妇xxxxxx| 激情综合亚洲精品| 在线精品国精品国产尤物884a| 日韩一级精品视频在线观看| 国产精品嫩草影院com| 亚洲18色成人| 成人高清视频免费观看| 91精品国产91久久久久久最新毛片| 欧美激情综合在线| 蜜桃久久久久久久| 欧美视频在线一区二区三区 | 日韩码欧中文字| 蜜臀久久99精品久久久久宅男| 99久久精品情趣| 精品国产伦理网| 亚洲香肠在线观看| 成a人片国产精品| 久久久久久免费毛片精品| 日韩专区中文字幕一区二区| av高清久久久| 久久久久久久久久久电影| 亚洲二区在线观看| 99精品久久只有精品| 国产日产精品一区| 经典三级视频一区| 日韩欧美高清dvd碟片| 一区二区三区日韩精品| 福利一区在线观看| 69堂国产成人免费视频| 伊人一区二区三区| 成人av午夜影院| 欧美韩国日本不卡| 国产精品亚洲第一区在线暖暖韩国| 在线成人小视频| 亚洲第一福利一区| 日本道精品一区二区三区| 国产精品传媒入口麻豆| 成人亚洲精品久久久久软件| 久久久亚洲综合| 久久99精品久久久久久| 精品日韩在线一区| 奇米一区二区三区av| 91精品国产综合久久香蕉的特点| 亚洲成a人v欧美综合天堂| 欧美专区在线观看一区| 亚洲综合视频在线|