C# 操作DOS添加端口防火墙名单

编程开发
88
c#
防火墙
端口
管理防火墙
白名单

开发软件有些时候监听端口和外部通信 需要通过防火墙的端口访问网络,常规情况下使用的端口都是默认设置关闭的,每次部署都需要手动添加就比较繁琐

C# 操作DOS添加端口防火墙名单 - Yuan天空

下面是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;
        }
    }

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

CefSharp 运行缓存数据量过大占完系统磁盘空间
微信公众平台C#开发系列(十五): 模板消息-删除消息模板
C# MailKit+MimeKit+QQ邮箱 实现发送邮件的简单例子
HTTP 错误 403.14 - Forbidden的解决办法
.NET开发Bitmap GetPixel,SetPixel处理太慢的替代解决办法
C# 局域网通过Ip获取远程电脑的计算机名称和别名
C#如何利用(Windows Script Host)COM组件来创建快捷方式
.NET5 webApi项目接收HttpPost文本流数据
C# 判断端口是否正在被其他程序使用着
WPF 异步线程操作界面控件
C# .NET中 使用GDI+ 添加图形水印
html5手机端禁止用户浏览器缩放页面的代码
暂无相关内容...
基于Wpf+MVVM实现的完整截图软件的框选区域效果源码
 远程控制软件Radmin3.4 中文完整版(控制端和被控端)
C#基于ffmpeg.exe实现视频添加字幕转GIF表情包的源码
基于WPF实现系统桌面录制gif+批量添加水印工具源码
[人脸检测]基于C#OpenCvSharp+haarcascade人脸、人眼模型实现人脸检测源码
基于.NET4.0实现的目录文件新增监视并自动化上传至ftp完整流程工具源码
免责声明 部分转载分享内容若侵犯您的权益,还请 邮件联系 侵删