gpt4 book ai didi

c# - 有没有办法在 C# 中获取禁用/启用的网络接口(interface)列表

转载 作者:行者123 更新时间:2023-11-30 17:27:42 24 4
gpt4 key购买 nike

我正在编写一个小脚本来更改特定 Wireless80211 或以太网网络接口(interface)的 IPv4 地址。到目前为止一切正常。该脚本使用命令提示符和 netsh 设置 IPv4(为了使用 C# 控制它,我使用 System.Diagnostics)。我想添加一个功能,即脚本禁用或启用所有 Wireless80211 和以太网网络接口(interface)(没有特定接口(interface)),您可以在“控制面板”>“网络和 Internet”>“网络连接”中找到它们。

该脚本主要用于 ArtNet 到 DMX 自动准备使用 ArtNet 的一切(对于那些不知道控制面板和自动化工作流程的人)。我已经尝试过使用 System.Net.NetworkInformation 命名空间,但我只找到了一种方法来启用网络接口(interface)。一旦我禁用接口(interface) System.Net.NetworkInformation 就不会显示此接口(interface)。

最佳答案

我不知道 NetworkInterface.GetAllNetworkInterfaces() 没有返回禁用的接口(interface)。

无论如何,您可以尝试通过 .NET 框架中可用的 System.Management.dll 使用 WMI api(您必须将此引用添加到您的项目),我做了一个测试,它允许您甚至可以与禁用的网络接口(interface)进行交互。

以下示例让您了解如何通过此 api 使用 WMI,我几乎从文档中提取了它:

using System;
using System.Management;
...
void ListNetworkAdapters()
{
var query = new ObjectQuery("SELECT * FROM Win32_NetworkAdapter");

using (var searcher = new ManagementObjectSearcher(query))
{
var queryCollection = searcher.Get();

foreach (var m in queryCollection)
{
Console.WriteLine("ServiceName : {0}", m["Name"]);
Console.WriteLine("MACAddress : {0}", m["Description"]);
Console.WriteLine();
}

Console.ReadLine();
}
}

文档可以在这里找到: https://learn.microsoft.com/en-us/windows/desktop/cimwin32prov/win32-networkadapter

关于c# - 有没有办法在 C# 中获取禁用/启用的网络接口(interface)列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54485908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com