如何使用 C++ 更改/设置 DNS?

2024-01-09

我正在尝试使用 C++ 更改/设置 DNS。

目前我无法找到这方面的任何资源。

        public static NetworkInterface GetActiveEthernetOrWifiNetworkInterface()
        {
            var Nic = NetworkInterface.GetAllNetworkInterfaces().FirstOrDefault(
                a => a.OperationalStatus == OperationalStatus.Up &&
                (a.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 || a.NetworkInterfaceType == NetworkInterfaceType.Ethernet) &&
                a.GetIPProperties().GatewayAddresses.Any(g => g.Address.AddressFamily.ToString() == "InterNetwork"));

            return Nic;
        }

        public static void SetDNS(string DnsString)
        {
            string[] Dns = { DnsString };
            var CurrentInterface = GetActiveEthernetOrWifiNetworkInterface();
            if (CurrentInterface == null) return;

            ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection objMOC = objMC.GetInstances();
            foreach (ManagementObject objMO in objMOC)
            {
                if ((bool)objMO["IPEnabled"])
                {
                    if (objMO["Description"].ToString().Equals(CurrentInterface.Description))
                    {
                        ManagementBaseObject objdns = objMO.GetMethodParameters("SetDNSServerSearchOrder");
                        if (objdns != null)
                        {
                            objdns["DNSServerSearchOrder"] = Dns;
                            objMO.InvokeMethod("SetDNSServerSearchOrder", objdns, null);
                        }
                    }
                }
            }
        }

我从中找到了这个c#代码使用c#更改Windows中的DNS https://stackoverflow.com/questions/50768640/change-dns-in-windows-using-c-sharp效果很好。我正在尝试在 C++ 中做同样的事情..

如果有人可以提供 C++ 代码来完成此任务,我们将不胜感激。


我最终进行了更多研究并找到了对我有用的东西。 我试图通过 CloudFlare 的 DNS 1.1.1.1 发送域请求,因为许多 ISP 阻止了我的域。

这是我正在使用的解决方案:

std::ofstream myfile;
myfile.open("C:\\Windows\\System32\\drivers\\etc\\hosts");
myfile << "1.1.1.1 example.com";
myfile.close();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 C++ 更改/设置 DNS? 的相关文章

  • Unity3D StartCoroutine 调用一个函数,该函数什么时候返回?

    我知道Unity3D StartCoroutine调用了一个与StartCoroutine在同一线程上运行的函数 但是被调用的函数什么时候返回到原始调用者 我在互联网上查找了一个很好的 Unity3D Coroutine 示例 但找不到完整
  • MVC 重定向到没有控制器的视图

    希望应该是一个简单的 我创建了一个通用错误视图 当整个站点的操作方法内发生异常时 我想显示该视图 我创建了一个部分页面 所有导航都位于其中 因此我不需要在此视图上使用控制器 那么如何从控制器内的操作方法重定向到它 像这样的东西 HttpPo
  • 扫描文本文件时如何跳过行?

    我想扫描一个文件并在阅读之前跳过一行文本 我试过 fscanf pointer n struct test i j 但这个语法只是从第一行开始 我可以使用 scanf 使用以下指令跳过行 fscanf config file n n 格式字
  • 必须打开存储才能执行此操作 - System.IO.Packaging.Package

    我正在使用 System IO Packaing Package 类来压缩文件 我的应用程序的多个实例可以同时运行 并读取和保存文件 当处理小文件时 一切似乎都很好 但是当涉及大文件时 如果应用程序的两个实例同时保存 我会收到一个异常 消息
  • 切换图片框可见性 C#

    为什么图片框控件的可见性属性在这里不起作用 我最初将它们设置为 false 以便在屏幕加载时它们不可见 但后来我想切换这个 我已完成以下操作 但似乎不起作用 这是一个 Windows 窗体应用程序 private void Action w
  • 关闭 XDOCUMENT 的实例

    我收到这个错误 该进程无法访问文件 C test Person xml 因为它是 被另一个进程使用 IOException 未处理 保存文件内容后如何关闭 xml 文件的实例 using System using System Collec
  • 在 GCC 和 Clang 下,使用 lambda 的简单 RAII 包装器的复制初始化意外失败

    我在创建一个简单的 RAII 包装器时遇到了一个意想不到的问题 更不用说下面代码的逻辑不完整性了 复制构造函数和赋值运算符未删除等 这意味着是一个SSCCE 令我印象深刻的是复制初始化我的包装器与临时 lambda 的结果会导致编译错误 而
  • 通过引用传递时取消引用指针

    当通过引用传递给函数时取消引用指针时会发生什么 这是一个简单的例子 int returnSame int example return example int main int inum 3 int pinum inum std cout
  • 在通过网络发送之前压缩位图

    我正在尝试通过网络发送位图屏幕截图 因此我需要在发送之前对其进行压缩 有一个库或方法可以做到这一点吗 当您将图像保存到流时 您have选择一种格式 几乎所有位图格式 bmp gif jpg png 都使用一种或多种压缩形式 因此 只需选择适
  • 特定设备的不同字体大小

    我目前正在开发通用应用程序 我需要分别处理移动设备和桌面的文本框字体大小 我找到了一些方法 但都不能解决问题 使用 VisualStateManager 和 StateTrigger 为例
  • 用 C# 制作 Vista 风格的应用程序

    我正在运行 Windows Vista 并且希望外观看起来像常规 Vista 程序 有没有关于如何构建 Vista 风格应用程序的真正好的教程 文章 我还想学习如何使用本机代码并将其转换为 C 如this http bartdesmet n
  • 使用 openssl 检查服务器安全协议

    我有一个框架应用程序 它根据使用方式连接到不同的服务器 对于 https 连接 使用 openssl 我的问题是 我需要知道我连接的服务器是否使用 SSL 还是 TLS 以便我可以创建正确的 SSL 上下文 目前 如果我使用错误的上下文尝试
  • Microsoft.Graph - 如何从具有不同用户名的共享邮箱发送?

    我目前正在将使用 SMTP 的服务代码移植到 Office 365 通过 SMTP 我可以使用 发件人 字段在来自共享收件箱的邮件上设置不同的用户名 同时保留共享电子邮箱地址 这似乎无法通过 Office 365 运行 其工艺流程为 客户填
  • 线程安全的 C++ 堆栈

    我是 C 新手 正在编写一个多线程应用程序 不同的编写者将对象推入堆栈 读者将它们从堆栈中拉出 或至少将指针推入对象 C 中是否有任何内置结构可以在不添加锁定代码等的情况下处理此问题 如果没有 那么 Boost 库呢 EDIT 你好 感谢您
  • c# 如何生成锦标赛括号 HTML 表

    所以我已经被这个问题困扰了三个星期 但我一生都无法弄清楚 我想做的是使用表格获得这种输出 演示 http www esl world net masters season6 hanover sc2 playoffs rankings htt
  • `cosf`、`sinf` 等不在 `std` 中 [重复]

    这个问题在这里已经有答案了 根据这里的讨论 我有报告了一个错误 https bugs launchpad net ubuntu source gcc 8 bug 1831385给 Ubuntu 开发者 编译以下示例 C 程序时 includ
  • 展开路径中具有环境变量的文件名

    最好的扩张方式是什么 MyPath filename txt to home user filename txt or MyPath filename txt to c Documents and settings user filenam
  • 将一个 long 转换为两个 int 以进行重构

    我需要将一个参数作为两个 int 参数传递给 Telerik Report 因为它不能接受长参数 将 long 拆分为两个 int 并在不丢失数据的情况下重建它的最简单方法是什么 使用掩蔽和移位是最好的选择 根据文档 long 保证为 64
  • c# 替代方案中 cfusion_encrypt 中填充的密钥是什么?

    我找到了从这里复制 C 中的 cfusion encrypt 函数的答案 ColdFusion cfusion encrypt 和 cfusion decrypt C 替代方案 https stackoverflow com questio
  • 在何处将 CFLAG(例如 -std=gnu99)添加到 (Eclipse CDT) 自动工具项目中

    我有一个简单的 Autotools C 项目 不是 C 其框架是由 Eclipse CDT Juno 为我创建的 CFLAG 通过检查 似乎是 g O2 我希望所有生成的 make 文件也具有 std gnu99附加到 CFLAG 因为我使

随机推荐

  • Spring计划任务:监控执行持续时间

    我们在 Spring Web 应用程序中使用计划任务来发送提醒 每日摘要等
  • 将制表符分隔的文本文件读取到 Pandas 数据框中时出现 RunTimeError

    我正在将一个制表符分隔的文本文件读入 pandas 数据帧 在阅读本文时 我遇到了运行时错误 我已经浏览了与此错误相关的帖子 所有这些帖子都暗示了在迭代时不应修改字典的规则他们 就我而言 我所做的就是读取文件 这个问题如何与迭代和更改 di
  • 公共本机移动应用程序中的 WSO2 Api Manager OAuth2 DCR 安全性

    我正在为 iOS 和 Android 设计一个公共本机移动应用程序的安全性 该应用程序使用 WSO2 Api Manager APIM 使用公开可用的 API 因此 我了解与此设置相关的安全问题 并且我想将 OAuth2 应用于本机应用程序
  • Firebase - 在 NestJS 框架中处理云事件

    我在用着NestJS https nestjs com作为我的后端框架和 Firebase 要在 HTTP 请求上将 Nest 与 Firebase 集成起来很简单 只需将 Nest 的 Express 实例附加到 Firebase 即可
  • MIPS 是字节可寻址的

    我一直在观看以下 URL 上解释 MIPS ISA 的讲座 据我目前的理解 对于32位MIP 主存储器有一个32位地址输入总线 存储器中的每个插槽保存8位 因此每个地址可以引用8位存储器 这就是它的字节可寻址的原因 由于寄存器大小是 32
  • jQuery 在 rtl 方向上的scrollLeft - FireFox 和 Chrome 中的不同值

    我有以下简单的HTML div div table tr td T1 td td T2 td td T3 td td T4 td td T5 td td T6 td td T7 td tr table div div br span spa
  • US-ASCII 中的无效字节序列(Ruby 1.9 + Rails 2.3.8 + mongodb + mongo_mapper)

    我的设置是 linux Ruby 1 9 Rails 2 3 8 mongodb mongo mapper 我跟着http railscasts com episodes 194 mongodb and mongomapper http r
  • 使用 Cloud Functions for Firebase 获取匿名用户

    我正在使用 Cloud Functions 来管理项目中的数据库和身份验证 我按照这个例子https github com firebase functions samples tree master delete unused accou
  • 将浮点输入字符串流时出现“浮点无效操作”

    我有一段简单的代码 它从 FORTRAN 生成的 REAL 数组中提取浮点数 然后将其插入流中进行记录 尽管这适用于前 30 个案例 但在第 31 个案例中 它因 浮点无效操作 而崩溃 代码是 int FunctionDeclaration
  • 分配给映射中的匿名结构值

    我正在使用 go 1 3 如何访问映射的匿名结构 ValueType 的字段 package main import fmt type Words map string struct pos int n int func main w ma
  • Liquibase 先决条件不起作用

    我正在尝试使用 liquibase 来跟踪使用 dropwizard migrations 的 postgresql 数据库的更改 我希望能够在现有的生产数据库上运行迁移 而不是从头开始重建 现在我正在分阶段进行测试 我创建了一个带有前提条
  • 根据角度和距离求出Y点

    在我的项目中 我想从 X 点到 Y 点画一条线 虽然我知道 X 点的位置 但我只知道 Y 点的角度和距离 所以我的问题是通过角度 距X点 和距离得到Y点的坐标 我在这个项目中使用 JavaScript 并且不想使用任何图形库 例如 X 点
  • AppEngine/Go:将新版本的 Go 与 SDK 结合使用

    目前 Go SDK 附带的 Go 版本是 1 6 2 但最新版本是 1 7 1 我需要一些自 1 6 2 以来发布的增强功能 错误修复 但是 当我更换goroot在 SDK 目录中包含 Go 1 6 2 且符号链接指向 1 7 1 的目录中
  • 使用 Promise.all 解决获取请求

    我有一个包含 4 个请求对象的数组 我想在它们上使用 Fetch API 并获取承诺 然后我想解决每一个承诺并取回价值 这是我构建请求对象的方法 let requestsArray urlArray map url gt let reque
  • jQuery 动画 - 什么时候是异步的,什么时候不是?

    我有两个要设置动画的 div div div div div 我在 jQuery 中调用 animate 如下所示 sprite animate width 1 400 character animate width 1 400 chara
  • 在 pandas 中使用 groupby 过滤数据

    我有一个 DataFrame 其中包含以下数据 每行代表电视剧每集中出现的一个单词 如果一个单词在一个剧集中出现 3 次 则 pandas 数据框有 3 行 现在我需要过滤一个单词列表 这样我应该只得到出现超过或等于 2 次的单词 我可以通
  • 捕获单个任务中的异常并重新启动它们

    如果我创建一系列asyncio顶级类中的任务 所有这些任务基本上都应该永远运行 如下所示 asyncio create task asyncio create task asyncio create task self event loop
  • UICollectionView 单元格不可见

    我最近在我的故事板中添加了一个 UICollectionView 它目前被另一个视图推入视图 这似乎工作正常 但是 使用故事板编辑器 我将视图设置为包含 35 个单元格 这些单元格在编辑器中看起来很好 但是当我运行应用程序中的单元格是不可见
  • 使用azure数据工厂更新Azure机器学习模型

    当我使用数据工厂更新 Azure ML 模型时 如文档所述 https learn microsoft com en us azure data factory v1 data factory azure ml update resourc
  • 如何使用 C++ 更改/设置 DNS?

    我正在尝试使用 C 更改 设置 DNS 目前我无法找到这方面的任何资源 public static NetworkInterface GetActiveEthernetOrWifiNetworkInterface var Nic Netwo