使用 C# 以编程方式更改 ipsec 规则的方法?

2023-12-04

我知道如何执行 IPsec 更改的唯一方法是调用 netsh 来进行更改。有没有直接使用 System.Management 和 WMI 对象的方法?如果是这样,那是什么?我很难通过 MSDN 找到相关的 WMI 信息。

或者有人使用过其他有用的方法吗?

编辑:我正在使用 C# 工作,并且更喜欢 C# 示例以及基于 .NET System.Management 的答案。

谢谢你!


1) 准确:WMI。

EnableIPFilterSec WMI 类静态方法可以跨所有 IP 绑定的网络适配器全局启用 IP 安全。启用安全性后,可以使用 EnableIPSec WMI 类方法更改任何特定适配器的安全特性。前者的 MSDN 在这里:

http://msdn.microsoft.com/en-us/library/aa390381%28VS.85%29.aspx

有关 EnableIPSec 及其参数(允许您声明端口和协议列表)的信息,请参阅此 MSDN 条目:

http://msdn.microsoft.com/en-us/library/aa390382%28VS.85%29.aspx

最后,这是 WMI.NET 代码目录的链接,其中有使用 System.Management 执行 WQL 查询的有用代码示例。

http://msdn.microsoft.com/en-us/library/ms257338.aspx

NOTE:

如果您像我一样需要对 ObjectQuery/SelectQuery System.Management 对象进行广泛的 WQL 测试,请尝试一下 wbemtest。它是 Windows Management Instrumentation 测试器,使您的应用程序的编写、测试和磨练 WQL 变得更加顺利。

2) 相关:Vista 或更高版本上使用 FirewallAPI、INetFwRule 接口以及可能需要的任何其他内容进行编程防火墙更改。

在 Vista 或更高版本上,如果您需要 ipsec 功能但不关心旧的 PolicyAgent 实现,那么使用 FirewallAPI.dll 是一个简单的选择。

我一开始并没有意识到这是一个选项,因为我不知道 Vista 和后来的高级防火墙真正将 IPSec 和 WFP(Windows 过滤平台)内的防火墙结合起来,并使旧的 IPSec 实现通过 PolicyAgent 进行。

这意味着使用 FirewallAPI.dll 可以提供 IPSec 的所有功能以及防火墙的状态智能,这正是我想要的。我只是添加黑名单规则(因为黑名单规则优先),并在需要时通过 API 添加到黑名单,WFP 开始丢弃流量。完毕!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 C# 以编程方式更改 ipsec 规则的方法? 的相关文章

  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l

随机推荐

  • Django 迁移错误 _mysql_exceptions.ProgrammingError: (1064, "您的 SQL 语法有错误

    TL DR python版本冲突 我认为我下载并编译的python 3 6 无法使用这个包 libmysqlclient dev 来迁移到mysql 只有系统默认的python 3 4 可以 我的 ubuntu 服务器附带了 python
  • PHP 内置服务器给出“CLI 已停止工作”

    我正在尝试使用 PHP 内置服务器功能php S localhost 8888为我的项目运行测试服务器 当我使用它时 出现错误 在事件日志中 出现以下错误 Faulting application name php exe version
  • php shell_exec touch 重定向和 adduser

    我试图最终使用 phpshell exec功能创建新的 Linux 用户 然而 即使进行调试 我也遇到了问题 这是我的代码
  • iOS 验证开发者的应用商店购买 ID

    如何从用户的订单列表中检查用户发送给我的购买 ID 例如 他可以发送类似以下内容的内容 M1VYXX7VX7 如应用程序商店中他的购买列表中所写 并要求退回他的购买内容 可能是他意外删除了他的应用程序 但是当我在代码中获取订单信息时 通过S
  • 如何在不使用 cron 作业的情况下在谷歌云中安排 python 脚本?

    我有两个 python 脚本在我的本地环境中每天运行一次 一是获取数据 二是格式化数据 现在我想将这些脚本部署到 Google 的云环境并每天运行一次 两次 我可以使用 Google Cloud Function 执行此操作还是需要 App
  • 使用route-helper将查询参数添加到现有参数中

    我使用路线助手 route routename 在我的 Blade 模板文件中过滤和 或排序页面的结果 将参数附加到前面的参数的最简单方法是什么 举个例子 我访问页面 category1并查看一些产品 现在我使用排序将 URL 更改为 ca
  • 使用 R 和 ggplot2 语法将自定义工具提示添加到绘图中

    我正在尝试使用 ggplot 对象从 R 创建一个绘图 该对象具有自定义标签 library devtools install github ropensci plotly library plotly set credentials fi
  • PHP脚本将大文本文件分割成多个文件

    我正在努力创建一个 PHP 脚本来帮助根据行数将一个大文本文件拆分为多个较小的文件 我需要增加分割的选项 因此第一个文件从 10 行开始 第二个文件从 20 行开始 依此类推 这是我的脚本中的一个函数
  • Obj-C @synthesize [重复]

    这个问题在这里已经有答案了 可能的重复 在 Objective C 中使用下划线作为属性名称前缀 iPhone 应用程序开发初学者在这里 in h property nonatomic retain IBOutlet UILabel det
  • 为什么第 n 个子选择器不起作用?

    我正在使用nth child选择器为不同的社交图标添加背景图像 然而 所有图标看起来都是一样的 我究竟做错了什么 social logo display inline block width 24px height 24px transit
  • jQuery 中的鼠标滚轮问题

    我在头部有以下代码 jQuery function box bind mousewheel function event delta var dir delta gt 0 Up Down vel Math abs delta alert d
  • 调整图像内容大小但保持图像尺寸

    我正在尝试使用 PyGame 在 Python 中制作一个基本的 Pokemon 副本 我过去遵循过一些有关该库的教程 因此 对于这个项目 我将有一个基本的瓦片结构 要么是草 要么是水 玩家不能在水方块上移动 但可以在草方块上自由移动 我通
  • AspNetCompiler MSBuild 任务中的虚拟路径 - 它是否必须等于最终部署的虚拟路径?

    这是 VS 2008 和 Net 3 5 我使用自定义部署项目脚本 该脚本类似于发布右键单击菜单 但我已对其进行了自定义以执行文件重命名和各种其他零碎操作 它工作得非常好 并且大大简化了发布程序 本周末我发现我们的一个实时网站存在一个问题
  • 在 AJAX 之前我需要学习 Javascript 还是 AJAX 不需要 Javascript 知识? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我想知道是否值得先学习javascript AJAX 是否需要 JavaScript 或者只是标记语言的相似之处 你绝对应该学习 javascript 而且因为AJAX是用javascri
  • 不使用 Composer 安装 PHPMailer

    请原谅我的无知 我正在尝试在 Linux 上的 PHP 5 6 下安装 PHPMailer 6 0 1 我的 PHP 安装是远程的 我通过 FTP 管理所有网站的 PHP 我通常将软件包作为 zip 下载到 Win 10 解压 然后将结果通
  • 将无头浏览器与 Heroku Rails Unicorn 堆栈结合使用

    我看到过一些帖子 您可以更改 Heroku 上的构建 以将 PhantomJS 与 Cedar 堆栈一起使用 但是是否可以在 unicorn 堆栈上运行无头浏览器 是的 有人已经编写了一个包含 PhantomJS 的构建包 互联网和开源非常
  • 使用 Linq 遍历层次结构表

    我有一个包含两列的表 GroupId 和 ParentId 均为 GUIDS 该表形成了一个层次结构 因此我可以在 GroupId 字段中查找值 当我找到它时 我可以查看它的 ParentId 这个ParentId也会出现在不同记录的Gro
  • Jquery 中的去抖动功能?

    一直在寻找 Jquery 中的去抖函数或去抖方法 动画的构建可能会变得非常烦人 代码如下 function fade media hide media fadeIn 2000 var debounce false function colo
  • 预先已知字符串的完美哈希函数

    我有 4000 个字符串 我想用这些字符串创建一个完美的哈希表 字符串是预先知道的 所以我的第一个想法是使用一系列if声明 if name aaa return 1 else if name bbb return 2 4000th if s
  • 使用 C# 以编程方式更改 ipsec 规则的方法?

    我知道如何执行 IPsec 更改的唯一方法是调用 netsh 来进行更改 有没有直接使用 System Management 和 WMI 对象的方法 如果是这样 那是什么 我很难通过 MSDN 找到相关的 WMI 信息 或者有人使用过其他有