📄 autoconnect.pas
字号:
unit Autoconnect;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls, IdFTP, IdAntiFreezeBase,
IdAntiFreeze, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdHTTP,winsock,shellapi;
type
TAutoForm = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Memo1: TMemo;
Label1: TLabel;
ComboBox1: TComboBox;
Button1: TButton;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Label2: TLabel;
UserEdit: TEdit;
ComboBox2: TComboBox;
Label3: TLabel;
PassEdit: TEdit;
IdHTTP1: TIdHTTP;
IdAntiFreeze1: TIdAntiFreeze;
IdFTP1: TIdFTP;
Label4: TLabel;
FtpEdit: TEdit;
Label5: TLabel;
PortEdit: TEdit;
Label6: TLabel;
FtpUserEdit: TEdit;
Label7: TLabel;
FtpPassEdit: TEdit;
Label8: TLabel;
FtpSipEdit: TEdit;
Label9: TLabel;
HttpEdit: TEdit;
Button2: TButton;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
AutoForm: TAutoForm;
implementation
{$R *.dfm}
procedure GetLocalIP;
type
TaPInAddr = array[0..255] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe: PHostEnt;
pptr: PaPInAddr;
Buffer: array[0..63] of char;
i: integer;
GInitData: TWSADATA;
Temp: string;
begin
wsastartup($101, GInitData);
Temp := '';
GetHostName(Buffer, SizeOf(Buffer));
phe := GetHostByName(buffer);
if not assigned(phe) then
exit;
pptr := PaPInAddr(Phe^.h_addr_list);
i := 0;
while pptr^[I] <> nil do begin
Temp := Temp + StrPas(inet_ntoa(pptr^[I]^)) + ',';
inc(i);
end;
Delete(Temp, Length(Temp), 1);
try
AutoForm.ComboBox1.Text:=Temp;
AutoForm.ComboBox1.Items.Add(Temp);
except
end;
wsacleanup;
end;
function GetInfoByYearNetHtm1(const str:string):String;
{
功能:从Yeah.Net的域名申请和修改返回网页文件中提取需要的信息
参数:Yeah.Net的网页文件内容
输出:实际的信息
作者:陈经韬
日期:2003,2,8
修改:无
}
const
SubColor='<font color=red>';
SubCenter1='<center>';
SubCenter2='</center>';
var
S:String;
i,j,k:integer;
begin
Result:='';
S:=str;
j:=0;
repeat
i:=Pos(SubColor,LowerCase(S));
if i=0 then break;
if Length(s)<(i+Length(SubColor)-1) then Break;
Delete(S,1,i+Length(SubColor)-1);
i:=Pos(SubCenter1,LowerCase(S));
if i=0 then break else if i<=10 then j:=-1;
until j=-1;
k:=Pos(SubCenter2,LowerCase(S));
S:=Copy(S,i+Length(SubCenter1),k-i-Length(SubCenter1));
k:=0;
repeat
i:=pos('<',s);
j:=pos('>',s);
if (i=0) or (j=0) then Break;
Delete(s,i,j-i+1);
Insert(' ', S, i);
until k=-1;
s:=s+'.';
Result:=s;
end;
procedure TAutoForm.FormShow(Sender: TObject);
begin
GetLocalIP;
end;
procedure TAutoForm.Button1Click(Sender: TObject);
var
StrRecive:String;
F:TextFile;
begin
if PageControl1.ActivePage = TabSheet1 then
begin
if (trim(UserEdit.Text)='') or (trim(PassEdit.Text)='') or (trim(ComboBox1.Text)='') then exit; //没有正确填写
Memo1.Lines.Clear;
Memo1.Lines.Add('正在更新域名!');
try
StrRecive:=IdHTTP1.Get('http://my.yeah.net/cgi-bin/modify?username='+UserEdit.Text+'&domain=yeah.net'+'&password='+PassEdit.Text+'&url=http://'+ComboBox1.Text);
Memo1.Lines.Add(GetInfoByYearNetHtm1(StrRecive));
except
Memo1.Lines.Add('更新IP错误!请检查网络!');
end;
end else
begin
// if (trim(FtpEdit.Text)='') or (trim(PortEdit.Text)='') or (trim(FtpUserEdit.Text)='') then exit;
Memo1.Lines.Clear;
Memo1.Lines.Add('正在更新FTP!');
IdFTP1.Host:= FtpEdit.Text;
IdFTP1.Port:= strtoint(PortEdit.Text);
IdFTP1.Username:= FtpUserEdit.Text;
IdFTP1.Password:= FtpPassEdit.Text;
IdFTP1.Connect();
Memo1.Lines.AddStrings(IdFTP1.LoginMsg.Text);
if IdFTP1.Connected then
begin
AssignFile(F,ExtractFilePath(Paramstr(0))+'test.htm');
ReWrite(F);
Writeln(F,'{window.location = "http://'+ComboBox1.text+'";;}');
CloseFile(F);
IdFTP1.Put(ExtractFilePath(Paramstr(0))+'test.htm',FtpSipEdit.Text,false);
IdFTP1.Disconnect;
Memo1.Lines.Add('更新FTP成功,请使用'+HttpEdit.Text+'访问!');
end else
begin
Memo1.Lines.Add('更新IP错误!请检查网络!');
end;
if FileExists(ExtractFilePath(Paramstr(0))+'test.htm') then
DeleteFile(ExtractFilePath(Paramstr(0))+'test.htm');
end;
end;
procedure TAutoForm.Button2Click(Sender: TObject);
begin
ShellExecute(0,nil,PChar(HttpEdit.Text), nil, nil, SW_NORMAL);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -