为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕雪6442864 2022-08-20 16:15:41
我正在编写一个小脚本来更改特定Wireless80211或以太网网络接口的IPv4地址。到目前为止,一切都很好。该脚本使用命令提示符和 netsh 设置 IPv4(使用我使用的 C# 控制它)。我想添加一个功能,即脚本禁用或启用所有Wireless80211和以太网网络接口(没有特定的接口),您可以在“控制面板>网络和Internet>网络连接”中找到这些接口。System.Diagnostics该脚本主要用于 ArtNet 到 DMX,以自动准备使用 ArtNet 的所有内容(对于对控制面板一无所知并自动执行工作流的人员)。我已经尝试了命名空间,但我只找到了一种启用网络接口的方法。一旦我禁用一个接口,就不会显示这个接口。System.Net.NetworkInformationSystem.Net.NetworkInformation
查看完整描述

2 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

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


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


以下示例为您提供了如何通过此 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://docs.microsoft.com/en-us/windows/desktop/cimwin32prov/win32-networkadapter


查看完整回答
反对 回复 2022-08-20
?
绝地无双

TA贡献1946条经验 获得超4个赞

NetworkInterface.GetAllNetworkInterfaces()

然后检查“操作状态”属性

https://docs.microsoft.com/en-us/dotnet/api/system.net.networkinformation.networkinterface?view=netframework-4.7.2


查看完整回答
反对 回复 2022-08-20
  • 2 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信