Einzelnen Beitrag anzeigen

Benutzerbild von GPRSNerd
GPRSNerd

Registriert seit: 30. Dez 2004
Ort: Ruhrpott
239 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Fritz box Reconnecten

  Alt 7. Dez 2010, 16:26
Hi, hier mal bisschen Code, der in meinem eigenen Tool mit meiner Fritz!Box 3070 einwandfrei funktioniert.
Ich habs mal auf das Wichtigste eingedampft, Fehlerbehandlung fürs Validieren der Inputs (Host-URL und UPnP-Port) kannst du bestimmt selbst...

Delphi-Quellcode:
procedure TForm_Main.bbReconnectClick(Sender: TObject);
var
  sock: TTcpClient;
  buffer: AnsiString;
  Host, Port: AnsiString;
begin

  //Host-URL
  Host := AnsiString(eHost.Text);

  //UPnP-Port
  Port := AnsiString(ePort.Text);

  sock := TTcpClient.Create(self);
  try
    sock.RemoteHost := Host;
    sock.RemotePort := Port;
    sock.Open;

    buffer :=
    'POST /upnp/control/WANIPConn1 HTTP/1.1'                              +CRLF+
    'Host: '+Host+':'+Port +CRLF+
    'Accept: */*'                                                         +CRLF+
    'Content-Type: text/xml; charset=utf-8'                               +CRLF+
    'SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination'+CRLF+
    'Content-Length: 276'                                                 +CRLF+ //Length=276 ab hier!
    ''                                                                    +CRLF+
    '<?xml version=''1.0'' encoding=''utf-8''?> '+
    '<s:Envelope s:encodingStyle=''http://schemas.xmlsoap.org/soap/encoding/'' '+
    'xmlns:s=''http://schemas.xmlsoap.org/soap/envelope/''> '+
    '<s:Body> <u:ForceTermination xmlns:u=''urn:schemas-upnp-org:service:WANIPConnection:1'' /> '+
    '</s:Body> </s:Envelope>';

    sock.SendBuf(buffer[1], length(buffer));
    sock.Close;
  finally
    sock.Free;
  end;
end;
PS: Meine Host-URL ist default "fritz.box" und der UPnP-Port 49000.
Stefan

Geändert von GPRSNerd ( 7. Dez 2010 um 16:31 Uhr)
  Mit Zitat antworten Zitat