📄 ddnsunit.pas
字号:
unit ddnsunit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdComponent, IdUDPBase, IdUDPClient, IdBaseComponent,
IdAntiFreezeBase, IdAntiFreeze, StdCtrls,link,shellapi, ComCtrls, ExtCtrls,
OleCtrls, SHDocVw;
type
TForm1 = class(TForm)
nameedit: TEdit;
passedit: TEdit;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
dlrz: TMemo;
UDPAntiFreeze: TIdAntiFreeze;
UDPClient: TIdUDPClient;
StatusBar1: TStatusBar;
Timer1: TTimer;
Timer2: TTimer;
wgip: TEdit;
Label3: TLabel;
ipdz: TEdit;
Label4: TLabel;
Label5: TLabel;
Memo1: TMemo;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Label5Click(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
MyStream: TMemoryStream;
MySendTxt,reciver_s,ym_s,bb_s: String;
MessageID: Integer;
ThisMessage: String;
ReceivedString,dkhm: String;
Begin
if nameedit.Text='' then begin StatusBar1.Panels[1].Text:=' 请输入用户名。'; nameedit.SetFocus;exit;end;
if passedit.Text='' then begin StatusBar1.Panels[1].Text:=' 请输入密码。';passedit.SetFocus;exit;end;
UDPClient.Port :=7688;
UDPClient.Host :='shiyanbanben.noip.cn';{远程主机}
MysendTxt:= nameedit.Text+'&'+passedit.text;
MessageID := Random(MAXINT);
ThisMessage:= 'shiyanbanben'+nameedit.Text+'&&&'+passedit.text+'&&&';
try
UDPClient.Send(ThisMessage); timer1.Interval :=1500;
except
StatusBar1.Panels[1].Text:=' 登录失败,线路不通! ';
exit;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
MyStream: TMemoryStream;
MySendTxt,reciver_s,ym_s,bb_s,ip_s: String;
MessageID: Integer;
ThisMessage: String;
ReceivedString,dkhm: String;
begin
try
ReceivedString := UDPClient.ReceiveString();
if ReceivedString = '' then
timer1.Interval :=0
else
begin
timer1.Interval :=1500;
reciver_s:=ReceivedString;
ym_s:=reciver_s;
if copy(reciver_s,1,8)='stopfuwu' then begin timer1.Interval:=0;end;
if copy(reciver_s,1,8)='dengluok' then
begin
Timer2.Interval :=15000; //开始检查IP
StatusBar1.Panels[1].Text:=' 登录成功! ';
ym_s:=copy(ym_s,12,pos('&&&',ym_s)-12);
bb_s:=copy(reciver_s,pos('&&&',reciver_s)+3,length(reciver_s));
ip_s:=copy(bb_s,1,pos('&&&',bb_s)-1);
wgip.Text :=ip_s;
ipdz.Text :=getips;
bb_s:=copy(bb_s,pos('&&&',bb_s)+3,length(bb_s));
bb_s:=copy(bb_s,1,pos('&&&',bb_s)-1);
reciver_s:=copy(reciver_s,9,1);
if pos('Repeat landing', ym_s)>0 then
dlrz.Lines.Add('域名重复登录成功,IP是 '+ip_s+' 时间 '+datetostr(date())+' '+TimeToStr(Time)+' 用户('+nameedit.text+')')
else
dlrz.Lines.Add('域名:'+ym_s+' 登录成功,IP是 '+ip_s+' 时间 '+datetostr(date())+' '+TimeToStr(Time)+' 用户('+nameedit.text+')');
end;
if copy(reciver_s,1,12)='nzhuceyonghu' then
begin
dlrz.Lines.Add(datetostr(date())+' '+TimeToStr(Time)+' '+nameedit.text+' 登录失败!');
reciver_s:=copy(reciver_s,13,1);
StatusBar1.Panels[1].Text:=' 输入有误或没注册,请看弹出窗口! ';
end;
end;
except
StatusBar1.Panels[1].Text:=timetostr(now)+' 登录失败,线路不通';
end;
end;
procedure TForm1.Label5Click(Sender: TObject);
begin
shellexecute(handle, 'OPEN', 'http://www.noip.cn/regedit.shtml', pchar('www.meibu.com/khd.asp'), nil, SW_SHOW) ;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
if ipdz.Text<>getips then
begin
timer2.Interval :=0;//如果本机IP改变,则从新登陆
button1.Click ;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -