一、 添加 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#添加删除防火墙例外(程序、端口)相关推荐

  1. cmake中添加引用动态链接_C# 添加、编辑、删除PPT中的超链接

    本文介绍通过C# 编程在PPT幻灯片中添加超链接(包括给文本添加超链接.给图片添加超链接)的方法,以及编辑.删除幻灯片中已有的超链接. 程序使用类库:Free Spire.Presentation f ...

  2. linux根据端口号找目录,Linux通过程序端口寻找程序路径

    在Linux中,如果端口随便设置就有可能出现端口被占用情况,这时候就需要找到对应的程序进行处理. 一.通过端口查看相应PID 1.使用 ss 查看端口 ss 一般用于转储套接字统计信息.它还可以显示所 ...

  3. firewalld/iptables防火墙维护和状态查询命令(防火墙重载,区域操作命令,开启服务或端口,堵塞端口,iptables规则添加和删除)

    文章目录 firewalld防火墙维护和状态查询命令 firewalld防火墙状态查询命令 firewalld防火墙重载配置命令 重新加载firewalld的配置 查询预定义信息命令 firewall ...

  4. linux防火墙怎么添加端口,手工添加Linux防火墙端口

    在Linux实际操作中经常需要对防火墙进行修改,比如经常要修改或添加相关端口,下面以添加运行Tomcat所需8080端口为例: (以下命令操作均为root用户) 1.编辑iptables文件 # vi ...

  5. linux 网桥代码分析之网桥及网桥端口的添加与删除Ⅲ

    目录 1 网桥添加 br_add_bridge() 1.1 申请并初始化 net_device.net_bridge 1.1.1 初始化网桥 br_dev_setup() 1.1.2 网桥操作函数集合 ...

  6. linux的nfs端口111,【NFS】NFS设置固定端口,添加防火墙规则

    NFS server启动时会随机启动多个端口并向RPC注册,这样如果使用iptables对NFS sever 端口进行限制就会有点麻烦,可以更改配置文件固定NFS服务相关端口. 以前配置的nfs端口一 ...

  7. 防火墙添加ip白名单_怎么给防火墙白名单 防火墙添加ip白名单

    怎么设置防火墙白名单? 1.首先,导航到控制面板并在控制面板中找到windows防火墙选项.如果找不到,请切换到左侧菜单中的经典视图: 2.双击"windows防火墙"弹出一个新对 ...

  8. Linux的iptables在指定的防火墙规则序号前添加防火墙规则

    一.问题背景 背景:公司安全部门检测到公司的hadoop集群中存在Yarn的未授权漏洞,即8080.8088端口外网可以访问的问题,于是,产生了给服务器增加防火墙规则的需求,具体如下: 二.问题处理 ...

  9. MySql中添加用户,新建数据库,用户授权,删除用户,修改密码

    MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...

最新文章

  1. Python 代码规范
  2. 不装.net Framework 也能运行WinForm程序,用飞信(转)
  3. tfrecord可以以列表的形式传入多个路径
  4. php插件 pycharm_原来Pycharm中有这么多好用的插件|Pycharm精选插件
  5. python3键盘事件_python+selenium3 鼠标事件和键盘事件
  6. 奥特曼传奇英雄存档丢了怎么找回_热血传奇:法师前期跨级刷怪到底划不划算?...
  7. OpenGL: 渲染管线理论
  8. Spark:超越Hadoop MapReduce
  9. 电影院售票系统mysql表格_电影院票务管理系统数据库设计(1)
  10. deepin系统引导_Windows 与 Deepin 双系统启动顺序的修改
  11. 酷我音乐到设备和驱动器_怎么把腾讯视频图标从电脑设备和驱动器里面删除
  12. TCP端口作用,漏洞,操作详析--杨义贤
  13. 计算机程序无法响应如何解决,电脑卡死出现应用程序未响应不可以正常工作怎么办?...
  14. 2022最新百度网盘无限扩容方法技术分享-免费扩100T
  15. LTE-TDD资源调度(1)-QCI、GBR和Non-GBR
  16. vivo电池损耗指令代码_vivo手机电池换新活动开启,69起即可换新电池
  17. HHTC第十二届程序设计竞赛
  18. 计算机处理器采用多核,电脑处理器多核心与高主频哪个更重要【详细介绍】
  19. JIRA部署破解和confluence整合
  20. poj1008 -- 玛雅历

热门文章

  1. html5自动提交表单提交,HTML5 Form表单--提交信息
  2. educoder实训平台java入门_educoder上的实训题目(学习-Java包装类之Byte类)
  3. python批量_Python学习第九十三天:Python批量处理图片
  4. java消费者生产者设计模式_java 多线程并发设计模式之四: 生产者消费者模式
  5. python 3.7下载安装scrapy_win10上python3.7安装scrapy1.5.1
  6. php curl 发送post请求带参数
  7. Programming .Net Component - Chapter 1. introducting component-oriented programming
  8. Codeforces Round #523 (Div. 2)
  9. 牛顿法/拟牛顿法/DFP/BFGS/L-BFGS算法
  10. Android项目实战(三十八):2017最新 将AndroidLibrary提交到JCenter仓库(图文教程)...