Restart rutera / D-LINK

0

Witam..
Od paru godzin probuje napisac program ktory bedzie restartowal ruter..
Problem mianowicie na samym poczatku przy logowaniu niby proste.. ale cos nie idzie. probowalem IdHttp
i IdIEEHtpp

To co oczekuje ruter :

<body onload="init()">
  <form method="POST" action="../cgi-bin/webcm" name="formLogin">
                <input type="hidden" name="getpage"   value="../html/frame.htm">
                <input type="hidden" name="login:command/username" value="Admin" >
                <input type="hidden" name="login:command/password" value="Admin" >
  </form>

i moje :

procedure TForm1.Button6Click(Sender: TObject);
var
  Params,F  : TStringList;
begin
  Params := TStringList.Create;
 { Params.Values['getpage']  :='../html/frame.htm';
  Params.Values['login:command/username']  :='Admin';
  Params.Values['login:command/password'] :='Admin';     }
  {
IdHTTP1.Request.Username:='Admin';
IdHTTP1.Request.Password:='Admin';  }
F.Text:= IdHTTP1.POST('http://192.168.1.1/cgi-bin/webcm',Params);
AdvMemo1.Lines.Text:=F.Text;
WriteText(WebBrowser,AdvMemo1.Lines.Text);
end;

powiem ze probowalem.. wszystkiego..

Zrzut ze sniffa.. z FF
<image src="http://i49.tinypic.com/lzh5j.jpg">

</image> <image src="http://i47.tinypic.com/25rpf87.jpg"> </image>

Dostaje ciagle :

  • invalid argument
  • Auth. error 401
  • getcgivars(): No Content-Length was sent with the POST request.

cuda niewidy..

</image>
0

Zrobilem troche inaczej na stream:

var
  data: TIdMultiPartFormDataStream;
begin
  data := TIdMultiPartFormDataStream.Create;
  try
    { add the used parameters for the script }
    data.AddFormField('getpage', '../html/frame.htm');
    data.AddFormField('login:command/username', 'admin');
    data.AddFormField('login:command/password', 'admin');
    IdHTTP1.Request.BasicAuthentication:=True;
    IdHTTP1.Request.Username:='admin';
    IdHTTP1.Request.Password:='admin';
    IdHTTP1.Request.ContentType:='application/x-www-form-urlencoded';

    Memo1.Lines.Text := IdHTTP1.Post('http://192.168.1.1/cgi-bin/webcm', data);

  finally
    data.Free;
  end;

zwraca:

getcgivars(): Unsupported Content-Type.

text/html tez nie obsluguje.. :P

0

Ciężko mi coś doradzić, bo ja mam ruter Dlinka DI-524 i on komunikauje się przez javascript raczej i tylko js pobiera mi
jak coś probuje od niego metodą GET ściągnąć. W prawdziwej przeglądarce konkretnie Operze jednak jak wywołam taki
adres http://192.168.0.1/x.htm?RC=@mis&ZT=1276283282813 spowoduje reboot. Jedyne co Tobie mogę szczerze
doradzić to po pierwsze użycie modułów z pakietu Synapse zamiast Indy. A po drugie to może zamiast tego sniffera co
używasz użyj WireSharka (jakby co są tutoriale na YouTube jak go używać), może pod nim dokładniej będziesz widział
co jest wysyłane w TCP Stream metodą POST do strony rutera. A może Twój ruter chociaż nie podejrzewam o to tak
znanego producenta jak DLink - korzysta z jakiś dodatkowych wpisów w nagłówkach albo wymaga jakiś ciasteczek itp.

0

Poszlo na Synapse.. Temat do zamkniecia. :

1 użytkowników online, w tym zalogowanych: 0, gości: 1