亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
悠悠色在线精品| 亚洲第一主播视频| 日韩欧美亚洲一区二区| 欧美午夜片在线观看| 色哟哟在线观看一区二区三区| 暴力调教一区二区三区| 99久久婷婷国产综合精品电影| 成人精品在线视频观看| 99这里只有久久精品视频| 粉嫩欧美一区二区三区高清影视| 国产传媒一区在线| 91在线免费播放| 日本乱人伦aⅴ精品| 欧美日韩mp4| 精品国内片67194| 国产午夜精品一区二区三区视频 | 91香蕉视频mp4| 99久久精品国产毛片| 欧美日韩一区二区三区在线看| 欧美人xxxx| 久久人人97超碰com| 最好看的中文字幕久久| 亚洲一区在线电影| 狠狠色狠狠色合久久伊人| 高清不卡在线观看| 在线观看日韩精品| 欧美一级国产精品| 国产欧美久久久精品影院| 一区二区三区在线观看视频| 日本vs亚洲vs韩国一区三区二区| 国产成人在线网站| 欧美系列亚洲系列| 欧美极品美女视频| 偷拍亚洲欧洲综合| 成人性视频网站| 欧美高清你懂得| 亚洲国产精品激情在线观看| 午夜精品免费在线| 波波电影院一区二区三区| 欧美精品乱人伦久久久久久| 国产亚洲精品精华液| 亚洲一区二区免费视频| 岛国精品在线观看| 欧美一区二区三区视频| 亚洲视频一区在线观看| 久久国内精品自在自线400部| 99精品久久99久久久久| 精品播放一区二区| 久久午夜国产精品| 中文天堂在线一区| 精品少妇一区二区三区在线播放| 欧美日韩国产a| 亚洲免费观看高清| 欧美三片在线视频观看| 奇米精品一区二区三区在线观看 | 欧美成人精精品一区二区频| 美女尤物国产一区| 中文字幕免费观看一区| 色综合久久久久| 日韩国产欧美在线播放| 国产日韩欧美综合一区| 91福利精品视频| 久久激情五月激情| 亚洲人成网站影音先锋播放| 91精品国产91久久久久久一区二区| 国产原创一区二区三区| 亚洲免费观看高清完整版在线观看 | 精品久久久久久久一区二区蜜臀| 国产91精品入口| 午夜精品影院在线观看| 亚洲综合一区二区三区| 日韩欧美高清dvd碟片| 国内欧美视频一区二区| 亚洲人快播电影网| 日韩午夜小视频| 99久久久无码国产精品| 蜜桃91丨九色丨蝌蚪91桃色| 成人欧美一区二区三区黑人麻豆| 欧美一区二区三区影视| 99精品视频一区二区三区| 美国毛片一区二区| 亚洲欧美成aⅴ人在线观看| 2023国产精华国产精品| 欧美午夜电影在线播放| 东方欧美亚洲色图在线| 日韩**一区毛片| 亚洲一区二区三区激情| 国产精品麻豆久久久| 日韩欧美亚洲国产精品字幕久久久| 91亚洲永久精品| 色婷婷综合久久久中文字幕| 国产精品久久二区二区| 日韩免费成人网| 欧美色图一区二区三区| 丁香天五香天堂综合| 麻豆极品一区二区三区| 亚洲国产精品久久人人爱蜜臀 | 亚洲动漫第一页| 国产精品乱码一区二三区小蝌蚪| 日韩限制级电影在线观看| 欧美写真视频网站| 一本久久a久久精品亚洲| 国产伦精品一区二区三区在线观看| 视频一区视频二区在线观看| 一二三四社区欧美黄| 亚洲天堂av老司机| 中文字幕在线观看不卡视频| 中文字幕乱码日本亚洲一区二区 | 精品一区二区免费在线观看| 午夜精品福利在线| 亚洲bt欧美bt精品777| 亚洲精品乱码久久久久久久久 | 97久久精品人人爽人人爽蜜臀| 国产成人午夜高潮毛片| 国产精品 日产精品 欧美精品| 精品中文字幕一区二区小辣椒| 美日韩一区二区三区| 极品尤物av久久免费看| 国产老肥熟一区二区三区| 国内精品伊人久久久久av影院| 韩国女主播一区| 国产成人自拍在线| 91网站在线观看视频| 色中色一区二区| 欧美老女人在线| 亚洲精品在线观看网站| 久久精品在这里| 国产精品欧美极品| 亚洲精品国产a| 日本美女视频一区二区| 久久电影网站中文字幕 | 亚洲精品在线免费播放| 国产情人综合久久777777| 最好看的中文字幕久久| 亚洲第一激情av| 国产一区二区三区在线观看免费视频 | 国产一区二区精品在线观看| 国产成人午夜高潮毛片| 91日韩在线专区| 欧美亚洲动漫另类| 精品黑人一区二区三区久久| 国产精品欧美久久久久无广告 | 欧洲日韩一区二区三区| 日韩一区二区影院| 欧美高清一级片在线观看| 一区二区在线观看免费视频播放 | 国产麻豆成人精品| 日本精品视频一区二区| 欧美久久高跟鞋激| 国产三级久久久| 亚洲一区二区在线观看视频| 美国三级日本三级久久99| av动漫一区二区| 日韩精品中文字幕在线一区| 亚洲视频狠狠干| 国产一区视频导航| 在线视频你懂得一区二区三区| 日韩欧美亚洲另类制服综合在线| 国产精品国产自产拍在线| 日韩精品每日更新| 一本色道久久综合亚洲精品按摩| 欧美极品xxx| 亚洲黄色免费网站| 久久精品国产网站| 在线视频国内自拍亚洲视频| 精品电影一区二区| 一区二区三区丝袜| 高清不卡在线观看av| 4438成人网| 悠悠色在线精品| 成人av免费在线| 亚洲精品在线免费观看视频| 午夜成人免费电影| 色999日韩国产欧美一区二区| 欧美精品一区二区久久婷婷 | 欧美国产亚洲另类动漫| 日韩影视精彩在线| 欧美亚洲综合网| 国产精品二三区| 国产一级精品在线| 日韩一区二区三区电影| 亚洲国产精品一区二区久久| av激情综合网| 国产精品日韩精品欧美在线| 国产精品白丝jk黑袜喷水| 欧美大片国产精品| 美女诱惑一区二区| 欧美夫妻性生活| 亚洲aaa精品| 欧美精品日日鲁夜夜添| 亚洲第一福利一区| 欧美午夜免费电影| 亚洲福利视频一区二区| 日本乱人伦aⅴ精品| 伊人色综合久久天天人手人婷| 欧美日韩另类国产亚洲欧美一级| 国产无遮挡一区二区三区毛片日本| 午夜精品久久久久影视| 欧美中文字幕亚洲一区二区va在线 | 精品乱人伦小说|