Yanlış hatırlamıyorsam şöyle yapıyorlardı,
Modeminizin kullandığı protokolleri internetten bulabilirseniz, windowstaki hyperterminal ile bu kodları modeme işletebiliyorduk. Bu yapıyı kullanarak bir komut istemi yazabilir reset gönderebilirsiniz. Şuan kullanılan modemlerde bu geçerlimi bilmiyorum fakat eski modemlerde böyle birşey yapabiliyorduk. Aklıma gelen ikinci yol ise modeme bir html sayfa ile bağlanabiliyorsak bu sayfanın benzerini sayfa kaynağına bakarak localde pc de oluşturursak, modem ayarlar menüsündeki resetlemeye de ulaşabiliriz. Html parse edip gerekli komutu gönderebiliriz gibi geliyor. İnternette delphi ile yapılmış şöyle birşey gördüm belki işinize yarayabilir..
viewtopic.php?f=2&t=10690 modem resetleme
http://cyber-warrior.org/Forum/modem-reset_399352,0.cwx
Ayrıca paylaşılmış bir kod örneği gördüm, fakat denemedim.
Kod: Tümünü seç
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdTelnet, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient,shellapi;
type
TForm1 = class(TForm)
Memo1: TMemo;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Button1: TButton;
IdTelnet1: TIdTelnet;
Edit5: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure IdTelnet1Status(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: String);
procedure IdTelnet1Disconnected(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure IdTelnet1Connect(Sender: TObject);
procedure IdTelnet1DataAvailable(Sender: TIdTelnet;
const Buffer: String);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if IdTelnet1.Connected then IdTelnet1.Disconnect
end;
procedure TForm1.IdTelnet1Status(ASender: TObject;
const AStatus: TIdStatus; const AStatusText: String);
begin
Memo1.Lines.Add(AStatusText);
end;
procedure TForm1.IdTelnet1Disconnected(Sender: TObject);
begin
form1.close;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
IdTelnet1.Host := Edit1.Text ; //modem IP si (Gateway)
IdTelnet1.Connect;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.Clear;
end;
procedure TForm1.IdTelnet1Connect(Sender: TObject);
begin
Color := clTeal;
Application.ProcessMessages;
IdTelnet1.WriteLn(Edit2.Text); //modem kullanıcı adı
Memo1.Lines.Add('Kullanıcı adı gönderildi...');
Sleep(1000);
IdTelnet1.WriteLn(Edit3.Text); //modem şifresi
Memo1.Lines.Add('Şifre gönderildi...');
Sleep(1000);
Memo1.Lines.Add('Restart ediliyor...');
IdTelnet1.WriteLn(Edit4.Text); //restart etme komutu. belki modem markasına göre değişebilir...
sleep(1500);
Memo1.Lines.Add('Restart ediliyor...');
IdTelnet1.WriteLn(Edit5.Text); //restart etme komutu. belki modem markasına göre değişebilir...
sleep(1500);
Memo1.Lines.Add('Restart edildi...');
Sleep(3000);
IdTelnet1.Disconnect;
Memo1.Lines.Add('Kapanıyor...');
sleep(1500);
form1.close;
end;
procedure TForm1.IdTelnet1DataAvailable(Sender: TIdTelnet;
const Buffer: String);
begin
showmessage('firewall ı kontrol ediniz');
end;
end.