c# 添加防火墙例外端口_C# 操作DOS添加端口防火墙名单

2020/03/27

C# .NET

c# 防火墙 端口 管理

开发软件有些时候监听端口和外部通信 需要通过防火墙的端口访问网络,常规情况下使用的端口都是默认设置关闭的,每次部署都需要手动添加就比较繁琐,下面是C#调用dos命令代码打开端口防火墙的代码例子 可以实现一键自动添加端口防火墙白名单,代码如下:///

/// 防火墙

///

public static class FirewallPort

{

///

/// 端口协议类型

///

public enum Protocol

{

TCP, UDP

}

public enum ProtocolMode

{

///

/// 入站

///

IN,

///

/// 出站

///

OUT

}

[MTAThread]

public static string Open(string rulename, int port, Protocol protocol, ProtocolMode protocolmode)

{

string cmd= $" netsh advfirewall firewall add rule name={rulename} dir={protocolmode.ToString()} action=allow protocol={protocol.ToString()} localport={port}";

return Command(cmd);

}

public static string Delete(string rulename,int port, Protocol protocol, ProtocolMode protocolmode) {

string cmd = $" netsh advfirewall firewall delete rule name={rulename} protocol={protocol.ToString()} localport={port}";

return Command(cmd);

}

private static string Command(string cmd) {

System.Diagnostics.Process pro = new System.Diagnostics.Process();//实例化进程

pro.StartInfo.FileName = "cmd.exe";//设置要运行的程序文件

pro.StartInfo.UseShellExecute = false;//是否使用操作系统shell程序启动

pro.StartInfo.RedirectStandardInput = true;//是否接受来自应用程序的调用

pro.StartInfo.RedirectStandardOutput = true;//是否接受来自应用程序的输出信息

pro.StartInfo.RedirectStandardError = true;//是否接受重定向错误信息

pro.StartInfo.CreateNoWindow = true;//不显示窗口信息

pro.Start();//启动程序

//向cmd窗口发送输入信息

pro.StandardInput.WriteLine(cmd + " &exit");

pro.StandardInput.AutoFlush = true;

//获取窗口输出的信息

string info = pro.StandardOutput.ReadToEnd();

pro.WaitForExit();//等待程序运行完退出程序

pro.Close();//关闭进程

return info;

}

}

注意 ! 操作是需要开启防火墙,不然执行会报异常

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值