also ich mache das so...
Delphi-Quellcode:
procedure AddPortClick(WANIPConn:UPnPService);
var
sOut : OleVariant;
sArg : OleVariant;
ret : OleVariant;
begin
if not Assigned(WANIPConn)
then exit;
try
sOut := VarArrayCreate([0, 0], varVariant);
sArg := VarArrayCreate([0, 7], varVariant);
sArg[0] := '
';
//RemoteHost
sArg[1] := 1000;
//ExternalPort
sArg[2] := '
TCP';
//Protocol
sArg[3] := 1000;
//InternalPort
sArg[4] := '
192.168.178.5';
//InternalClient
sArg[5] := 1;
//Enabled
sArg[6] := '
TestMapping';
//PortMappingDescription
sArg[7] := 0;
//LeaseDuration
ret := WANIPConn.InvokeAction('
AddPortMapping', sArg, sOut);
if ret = S_OK
then
lbDebug.Items.Add('
Port Freischaltung erfolgreich !')
else
lbDebug.Items.Add('
Port Freischaltung fehlgeschlagen !');
VariantClear(sArg);
VariantClear(sOut);
except
end;
end;
Sollte das nicht funktionieren dann ist es vom Router evtl nicht erlaubt!
Mein Testprogramm hänge ich mal mit an es öffnet den Port 1000.