[英]Create firewall rule to open port per application programmatically in c#
[英]open port programmatically in C#
我正在嘗試創建一個程序來打開路由器端口,可能是在 C# 中。 我聽說可以使用 opennat C# 庫。 我嘗試使用此代碼,但程序沒有顯示任何答案標志。
public Form1()
{
InitializeComponent();
OpenPort().Wait();
}
private static async Task OpenPort()
{
var nat = new NatDiscoverer();
var cts = new CancellationTokenSource(5000);
var device = await nat.DiscoverDeviceAsync(PortMapper.Upnp, cts);
await device.CreatePortMapAsync(new Mapping(Protocol.Tcp, 11000, 11000, 0, "port 11000"));
}
以下是使用https://csharp.hotexamples.com/en/examples/Open.Nat/NatDiscoverer/-/php-natdiscoverer-class-examples.html的 NatDiscovers 示例
public void OpenExternalPort(int privatePort, int publicPort, string description)
{
localHostPort = privatePort;
var timeSpan = new TimeSpan(0, 0, 0, 30);
var cancellationTokenSource = new CancellationTokenSource(timeSpan);
natDiscoverer = new NatDiscoverer();
natDevice = natDiscoverer
.DiscoverDeviceAsync(PortMapper.Upnp, cancellationTokenSource)
.IsCompleted();
mapping = new Mapping(Protocol.Tcp, privatePort, publicPort, description);
natDevice
.CreatePortMapAsync(mapping)
.IsCompleted();
}
看起來像您的代碼示例(但new Mapping(Protocol.Tcp, privatePort, publicPort, description);
不像您的代碼那樣包含一個零)。
那么,你真的了解問題嗎? 也許你不需要端口映射? 或者您可能在系統的其他部分(如防火牆)有問題? 您如何理解您的代碼不起作用?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.