如何在应用程序级别禁用网络接口?
主要问题是:
如果我禁用网卡槽西米克(win7)或开发者大会(XP),有线网卡的“即插即用”功能不再起作用。例如,如果用户将电缆放在已禁用的网卡上,操作系统对此一无所知。
所以我需要保持启用条件,但禁用网络,就像禁用网卡一样。
有一些 API、网络配置(路由、更改 ip、更改网关、任何)、.NET Framework 资源(仅 NetFramework 2.0)或者您是否能想到任何解决方法来做到这一点?
建议和想法也将被视为解决方案。
谢谢并致以亲切的问候。
编辑:原因:
我正在做第三方公司要求的申请,以解决不负责任的人的问题。
该应用程序的主要思想是自动“禁用”(到目前为止,不要认为“禁用”是禁用网卡),因此自动“禁用”选定的有线。
但在某些情况下,例如 DNS 关闭或类似情况,如果用户在 eth 上插入 utp 电缆,则应用程序需要知道是否已连接,以启动 nic。
该应用程序的工作流程面向“不要做傻事”的行为。因此,我们需要注意所有情况,无论是专家用户还是新手。
假设这种情况:
网卡 A 已启用且处于启动状态。网卡 B 已启用且处于关闭状态。
用户连接电缆 B。
nic B 已启用并启动。
应用程序禁用连接 B。
网卡 B 已被禁用。
用户断开电缆 B。
网卡 A 已启用,但未连接互联网。(对于第三家公司而言,这是“故障”情况)
应用程序禁用网卡 A。
当用户重新连接电缆 B 时,应用程序无法启用网卡 B。
到目前为止,有很多种组合。
答案1
您可以将 NIC 设置为不从 DHCP 中提取其地址并将其 IP 设置为无效地址。
您可以通过在网络适配器属性中取消选中该适配器旁边的复选框来禁用该适配器的 TCP/IP 协议ncpa.cpl