端口转发使用UPnP - 关闭端口

时间:2014-02-21 09:07:00

标签: delphi port delphi-7

我正在使用Port Forwarding by Using "HNetCfg.NATUPnP" Ole Object Failed中的代码进行端口转发,工作正常,但是当应用程序终止时我无法关闭端口。

AddUPnPEntry(1234, 'Hello3', '192.168.1.34');

1234端口仍然打开,即使我重新启动了我的电脑,我在canyouseeme.org上进行了测试。 那我怎么能关闭这个港口?

编辑:解决了,我只需要重新启动(关闭然后再打开)我的路由器再次关闭端口。

1 个答案:

答案 0 :(得分:1)

AddUPnPEntry()使用IStaticPortMappingCollection.Add()方法。有一个关联的IStaticPortMappingCollection.Remove()方法,例如:

Procedure RemoveUPnPEntry(Port: Integer);
Var
  Nat: Variant;
  Ports: Variant;
Begin
  try
    Nat := CreateOleObject('HNetCfg.NATUPnP');
    Ports := Nat.StaticPortMappingCollection;
    Ports.Remove(Port, 'TCP');
  except
    ShowMessage('An Error occured with removing UPnP Ports. ' +
      'Please check to see if your router supports UPnP and ' +
      'has it enabled or disable UPnP.');
  end;
End;

RemoveUPnPEntry(1234);