Thema: Delphi UPNP / Portscan

Einzelnen Beitrag anzeigen

Benutzerbild von TKC
TKC

Registriert seit: 21. Apr 2004
Ort: Tuningen
367 Beiträge
 
Delphi XE2 Enterprise
 

Re: UPNP / Portscan

  Alt 22. Aug 2006, 13: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;
  Mit Zitat antworten Zitat