Nabend ich habe ein Problem mit FritzBox und UPNP-Status informationen auslesen:
Wie man am code sehen kann will ich mir die aktuelle
IP Adresse ausgeben lassen, funktioniert soweit auch.... aber das auslesen dauert beim 1. mal ca. 20-30 sek beim 2. mal liest er garnix mehr aus....
kann mir einer sagen woran das leigen könnte.... Danke
Hier der Betreffende Code:
Delphi-Quellcode:
fSocket : TTCPClient;
[..........]
function TFritzBox.GetIP :
String;
var
Stringliste : TStringlist;
buffer : AnsiString;
begin
//Senden vorbereiten------------------------------------------------------------
Stringliste := TStringlist.Create;
try
Stringliste.Clear;
Stringliste.Add('
POST /upnp/control/WANCommonIFC1 HTTP/1.1');
Stringliste.Add('
Host: 192.168.178.1:49000');
Stringliste.Add('
Accept: */*');
Stringliste.Add('
Content-Type: text/xml;charset=utf-8');
Stringliste.Add('
SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress');
buffer := ('
<?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:GetExternalIPAddress xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" />'+
'
</s:Body> </s:Envelope>');
Stringliste.Add('
Content-Length:' + inttostr(length(buffer)));
Stringliste.Add('
');
Stringliste.Add(buffer);
buffer := Stringliste.Text;
finally
Stringliste.Free;
end;
//Senden------------------------------------------------------------------------
fSocket.SendBuf(buffer[1],length(buffer));
result := fSocket.Receiveln('
#13#10')
end