Registriert seit: 21. Apr 2004
Ort: Tuningen
367 Beiträge
Delphi XE2 Enterprise
|
Re: UPNP / Portscan
22. Aug 2006, 14:39
Hi,
zu 1. kann man so machen .. ich persönlich benutze UPnPMonitor.CreateAsyncFind mit einem CallBack
zu 2.
Port löschen
Delphi-Quellcode:
procedure DelPortClick(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, 2], varVariant);
sArg[0] := ' '; //RemoteHost
sArg[1] := 1000; //ExternalPort
sArg[2] := ' TCP'; //Protocol
ret := WANIPConn.InvokeAction(' DeletePortMapping', sArg, sOut);
if ret = S_OK then
ShowMessage(' Port löschung erfolgreich !')
else
ShowMessage(' Port löschung fehlgeschlagen !');
VariantClear(sArg);
VariantClear(sOut);
except
end;
end;
zu 3. ja kenne ich ^^
Delphi-Quellcode:
procedure GetPortList(WANIPConn:UPnPService;lbDebug:TListBox);
var
sOut : OleVariant;
sArg : OleVariant;
ret : OleVariant;
iCount : Integer;
x : Integer;
begin
if not Assigned(WANIPConn) then exit;
try
// Portmappings zählen
iCount := WANIPConn.QueryStateVariable('PortMappingNumberOfEntries');
sOut := VarArrayCreate([0, 7], varVariant);
sArg := VarArrayCreate([0, 0], varVariant);
//Alle Portmappings durchlaufen
for x := 0 to iCount - 1 do
begin
sArg[0] := x;
ret := WANIPConn.InvokeAction('GetGenericPortMappingEntry', sArg, sOut);
lbDebug.Items.Add(
sOut[0] + '-' //RemoteHost
+ IntToStr(sOut[1]) + '-' //ExternalPort
+ sOut[2] + '-' //Protocol
+ IntToStr(sOut[3]) + '-' //InternalPort
+ sOut[4] + '-' //InternalClient
+ IntToStr(sOut[5]) + '-' //Enabled
+ sOut[6] + '-' //PortMappingDescription
+ IntToStr(sOut[7]) //LeaseDuration
);
end;
VariantClear(sArg);
VariantClear(sOut);
except
end;
end;
|
|
Zitat
|