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

📄 re_route.pas.~19~

📁 当路由器出现问题
💻 ~19~
字号:
unit Re_route;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdTelnet, ExtCtrls;

type
  TForm1 = class(TForm)
    IdTelnet1: TIdTelnet;
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Memo1: TMemo;
    Label1: TLabel;
    Label2: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    Button2: TButton;
    Timer1: TTimer;
    Button3: TButton;
    Label3: TLabel;
    Label4: TLabel;
    procedure IdTelnet1DataAvailable(Sender: TIdTelnet; const Buffer: string);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Memo1KeyPress(Sender: TObject; var Key: Char);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Clear;
  try
    IdTelnet1.Disconnect;
    IdTelnet1.Host :=Trim(Edit1.Text);//'10.158.12.15';  // edtServer.Text;
    IdTelnet1.port :=strtoint(trim(Edit2.Text));  //23;  // spnedtPort.Value;
    IdTelnet1.Connect; 
  except
    IdTelnet1.Disconnect;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
CommStr:string;
begin
 try
 CommStr:=Trim(Edit3.Text);
 for I := 1 to Length(CommStr) do    // Iterate
  IdTelnet1.SendCh(CommStr[i]);
  IdTelnet1.SendCh(#13);
  IdTelnet1.SendCh(#10);
  Timer1.Enabled:=true;
 except
 //Memo1.Clear;
 end;

end;

procedure TForm1.Button3Click(Sender: TObject);
var
i:integer;
CommStr:string;
begin 
try
 CommStr:=Trim(memo1.Lines.Strings[Memo1.Lines.count-1]); //login:admin
 commstr:=trim(copy(commstr,pos(':',commstr)+1,length(CommStr)));
 {if pos('$',commstr)>0 then
    commstr:=copy(commstr,1,length(commstr));  }
    
 for I := 1 to Length(CommStr) do    // Iterate
  IdTelnet1.SendCh(CommStr[i]);

  IdTelnet1.SendCh(#13);
  IdTelnet1.SendCh(#10);
 except
  //Memo1.Clear;
 end;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 IdTelnet1.Disconnect;
end;

procedure TForm1.IdTelnet1DataAvailable(Sender: TIdTelnet;
  const Buffer: string);
const
  CR = #13;
  LF = #10;
var
  Start, Stop: Integer;
begin
  if Memo1.Lines.Count = 0 then
    Memo1.Lines.Add('');

  Start := 1;
  Stop := Pos(CR, Buffer);
  if Stop = 0 then
    Stop := Length(Buffer) + 1;
  while Start <= Length(Buffer) do
  begin
    Memo1.Lines.Strings[Memo1.Lines.Count - 1] :=
      Memo1.Lines.Strings[Memo1.Lines.Count - 1] +
      Copy(Buffer, Start, Stop - Start);
    if Buffer[Stop] = CR then
    begin
      Memo1.Lines.Add('');
{$IFNDEF Linux}
      SendMessage(Memo1.Handle, WM_KEYDOWN, VK_UP, 1);
{$ENDIF}
    end;
    Start := Stop + 1;
    if Start > Length(Buffer) then
      Break;
    if Buffer[Start] = LF then
      Start := Start + 1;
    Stop := Start;
    while (Buffer[Stop] <> CR) and (Stop <= Length(Buffer)) do
      Stop := Stop + 1;
  end;
end;


procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
 Button3.Click;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
i:integer;
flagestr,Commstr:string;
begin
 try
 flagestr:='';
 flagestr:=trim(Memo1.Lines.Strings[Memo1.Lines.count-1]);
 if pos('password:',flagestr)>0 then
  begin
   Commstr:='';
   Commstr:=Trim(Edit4.Text);
   for I := 1 to Length(Commstr) do    // Iterate

   IdTelnet1.SendCh(Commstr[i]);
   IdTelnet1.SendCh(#13);
   IdTelnet1.SendCh(#10);
   Timer1.Enabled:=false;
  end;
 except
   //Memo1.Clear;
   Timer1.Enabled:=true;
 end;
end;

end.

⌨️ 快捷键说明

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