如何以编程方式在mac os x中禁用/断开以太网适配器?

时间:2011-11-08 02:41:42

标签: objective-c macos operating-system

我是mac os x编程的新手,只是编写了一个小工具,可根据配置禁用无线或有线适配器。我能够使用corewlan框架断开无线连接,如:

CWInterface interface = [CWInterface interfaceWithName:@"en1"];
BOOL result = [interface setPower:NO error:&err];

它按预期工作。我需要类似的代码来禁用/断开以太网适配器。我研究了ifconfig(如下所述):

sudo ifconfig en0 down 

但它需要管理员密码而且我不想这样做。请建议一种替代的程序方法来禁用没有root密码的以太网适配器。

我读到 SCNetworkConfiguration 可以使用,但不知道如何使用它。请帮忙。

由于

1 个答案:

答案 0 :(得分:0)

如果没有管理员权限,您就无法关闭网络接口(即这就是网络首选项窗格中存在挂锁的原因)。可以这样想......你不希望任何公共机器上的非管理员用户能够任意关闭网络。

对于我自己的应用程序,我也禁用了Ethernet& WiFi,我必须获得启动单独工具的权限,以便从SystemConfiguration框架中以管理员身份运行。