c# 添加防火墙例外端口_C#添加删除防火墙例外(程序、端口)
一、 添加 COM 引用
在引用里,选择 COM 页, 找到 NetFwTypeLib, 确定即可
二、 添加允许通过防火墙的例外程序
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NetFwTypeLib;
namespace Common
{
public static class INetFwManger
{
///
/// 添加防火墙例外端口
///
/// 名称
/// 端口
/// 协议(TCP、UDP)
public static void NetFwAddPorts(string name, int port, string protocol)
{
//创建firewall管理类的实例
INetFwMgr netFwMgr = (INetFwMgr)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwMgr"));
INetFwOpenPort objPort = (INetFwOpenPort)Activator.CreateInstance(
Type.GetTypeFromProgID("HNetCfg.FwOpenPort"));
objPort.Name = name;
objPort.Port = port;
if (protocol.ToUpper() == "TCP")
{
objPort.Protocol = NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP;
}
else
{
objPort.Protocol = NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_UDP;
}
objPort.Scope = NET_FW_SCOPE_.NET_FW_SCOPE_ALL;
objPort.Enabled = true;
bool exist = false;
//加入到防火墙的管理策略
foreach (INetFwOpenPort mPort in netFwMgr.LocalPolicy.CurrentProfile.GloballyOpenPorts)
{
if (objPort == mPort)
{
exist = true;
break;
}
}
if (!exist) netFwMgr.LocalPolicy.CurrentProfile.GloballyOpenPorts.Add(objPort);
}
///
/// 将应用程序添加到防火墙例外
///
/// 应用程序名称
/// 应用程序可执行文件全路径
public static void NetFwAddApps(string name, string executablePath)
{
//创建firewall管理类的实例
INetFwMgr netFwMgr = (INetFwMgr)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwMgr"));
INetFwAuthorizedApplication app = (INetFwAuthorizedApplication)Activator.CreateInstance(
Type.GetTypeFromProgID("HNetCfg.FwAuthorizedApplication"));
//在例外列表里,程序显示的名称
app.Name = name;
//程序的路径及文件名
app.ProcessImageFileName = executablePath;
//是否启用该规则
app.Enabled = true;
//加入到防火墙的管理策略
netFwMgr.LocalPolicy.CurrentProfile.AuthorizedApplications.Add(app);
bool exist = false;
//加入到防火墙的管理策略
foreach (INetFwAuthorizedApplication mApp in netFwMgr.LocalPolicy.CurrentProfile.AuthorizedApplications)
{
if (app == mApp)
{
exist = true;
break;
}
}
if (!exist) netFwMgr.LocalPolicy.CurrentProfile.AuthorizedApplications.Add(app);
}
///
/// 删除防火墙例外端口
///
/// 端口
/// 协议(TCP、UDP)
public static void NetFwDelApps(int port,string protocol)
{
INetFwMgr netFwMgr = (INetFwMgr)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwMgr"));
if (protocol == "TCP")
{
netFwMgr.LocalPolicy.CurrentProfile.GloballyOpenPorts.Remove(port, NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP);
}
else
{
netFwMgr.LocalPolicy.CurrentProfile.GloballyOpenPorts.Remove(port, NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_UDP);
}
}
///
/// 删除防火墙例外中应用程序
///
/// 程序的绝对路径
public static void NetFwDelApps(string executablePath)
{
INetFwMgr netFwMgr = (INetFwMgr)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwMgr"));
netFwMgr.LocalPolicy.CurrentProfile.AuthorizedApplications.Remove(executablePath);
}
}
}
分享到:
2011-10-15 20:41
浏览 6075
评论
c# 添加防火墙例外端口_C#添加删除防火墙例外(程序、端口)相关推荐
- cmake中添加引用动态链接_C# 添加、编辑、删除PPT中的超链接
本文介绍通过C# 编程在PPT幻灯片中添加超链接(包括给文本添加超链接.给图片添加超链接)的方法,以及编辑.删除幻灯片中已有的超链接. 程序使用类库:Free Spire.Presentation f ...
- linux根据端口号找目录,Linux通过程序端口寻找程序路径
在Linux中,如果端口随便设置就有可能出现端口被占用情况,这时候就需要找到对应的程序进行处理. 一.通过端口查看相应PID 1.使用 ss 查看端口 ss 一般用于转储套接字统计信息.它还可以显示所 ...
- firewalld/iptables防火墙维护和状态查询命令(防火墙重载,区域操作命令,开启服务或端口,堵塞端口,iptables规则添加和删除)
文章目录 firewalld防火墙维护和状态查询命令 firewalld防火墙状态查询命令 firewalld防火墙重载配置命令 重新加载firewalld的配置 查询预定义信息命令 firewall ...
- linux防火墙怎么添加端口,手工添加Linux防火墙端口
在Linux实际操作中经常需要对防火墙进行修改,比如经常要修改或添加相关端口,下面以添加运行Tomcat所需8080端口为例: (以下命令操作均为root用户) 1.编辑iptables文件 # vi ...
- linux 网桥代码分析之网桥及网桥端口的添加与删除Ⅲ
目录 1 网桥添加 br_add_bridge() 1.1 申请并初始化 net_device.net_bridge 1.1.1 初始化网桥 br_dev_setup() 1.1.2 网桥操作函数集合 ...
- linux的nfs端口111,【NFS】NFS设置固定端口,添加防火墙规则
NFS server启动时会随机启动多个端口并向RPC注册,这样如果使用iptables对NFS sever 端口进行限制就会有点麻烦,可以更改配置文件固定NFS服务相关端口. 以前配置的nfs端口一 ...
- 防火墙添加ip白名单_怎么给防火墙白名单 防火墙添加ip白名单
怎么设置防火墙白名单? 1.首先,导航到控制面板并在控制面板中找到windows防火墙选项.如果找不到,请切换到左侧菜单中的经典视图: 2.双击"windows防火墙"弹出一个新对 ...
- Linux的iptables在指定的防火墙规则序号前添加防火墙规则
一.问题背景 背景:公司安全部门检测到公司的hadoop集群中存在Yarn的未授权漏洞,即8080.8088端口外网可以访问的问题,于是,产生了给服务器增加防火墙规则的需求,具体如下: 二.问题处理 ...
- MySql中添加用户,新建数据库,用户授权,删除用户,修改密码
MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...
最新文章
- Python 代码规范
- 不装.net Framework 也能运行WinForm程序,用飞信(转)
- tfrecord可以以列表的形式传入多个路径
- php插件 pycharm_原来Pycharm中有这么多好用的插件|Pycharm精选插件
- python3键盘事件_python+selenium3 鼠标事件和键盘事件
- 奥特曼传奇英雄存档丢了怎么找回_热血传奇:法师前期跨级刷怪到底划不划算?...
- OpenGL: 渲染管线理论
- Spark:超越Hadoop MapReduce
- 电影院售票系统mysql表格_电影院票务管理系统数据库设计(1)
- deepin系统引导_Windows 与 Deepin 双系统启动顺序的修改
- 酷我音乐到设备和驱动器_怎么把腾讯视频图标从电脑设备和驱动器里面删除
- TCP端口作用,漏洞,操作详析--杨义贤
- 计算机程序无法响应如何解决,电脑卡死出现应用程序未响应不可以正常工作怎么办?...
- 2022最新百度网盘无限扩容方法技术分享-免费扩100T
- LTE-TDD资源调度(1)-QCI、GBR和Non-GBR
- vivo电池损耗指令代码_vivo手机电池换新活动开启,69起即可换新电池
- HHTC第十二届程序设计竞赛
- 计算机处理器采用多核,电脑处理器多核心与高主频哪个更重要【详细介绍】
- JIRA部署破解和confluence整合
- poj1008 -- 玛雅历
热门文章
- html5自动提交表单提交,HTML5 Form表单--提交信息
- educoder实训平台java入门_educoder上的实训题目(学习-Java包装类之Byte类)
- python批量_Python学习第九十三天:Python批量处理图片
- java消费者生产者设计模式_java 多线程并发设计模式之四: 生产者消费者模式
- python 3.7下载安装scrapy_win10上python3.7安装scrapy1.5.1
- php curl 发送post请求带参数
- Programming .Net Component - Chapter 1. introducting component-oriented programming
- Codeforces Round #523 (Div. 2)
- 牛顿法/拟牛顿法/DFP/BFGS/L-BFGS算法
- Android项目实战(三十八):2017最新 将AndroidLibrary提交到JCenter仓库(图文教程)...