2

首选 C 或 C++。这不是一个 Objective-C 项目。

我已经知道 SSID。网络上可能存在 WPA2 安全性。如果机器有多个无线接口,我需要从特定接口(例如 eth2)加入。

我意识到那里有各种命令行工具(例如,在这个问题的答案中提供的工具),但我想加入网络而不执行可能在或可能不在机器上的外部依赖项。谢谢。

4

3 回答 3

2

networksetup工具在机器上,因为它是标准操作系统的一部分。没有必要重新发明轮子。

于 2012-04-26T15:47:46.777 回答
1

从终端,试试这个:

networksetup -setairportnetwork $INTERFACE $SSID $PASSWORD

或者,如果您想将其集成到 Cocoa/Objective-C 应用程序中

在此处查看我的代码runCmd(Mac)创建执行 shell 脚本的 Xcode 应用程序NSTask),了解如何使用和运行外部命令NSPipe

在这种情况下,你应该这样称呼它:

[self runCmd:@"/usr/sbin/networksetup" 
    withArgs:[[NSArray alloc] initWithObjects:@"-setairportnetwork",
                                              @"INTERFACE",
                                              @"SSID",
                                              @"PASS",
                                              nil]];

但我想加入网络而不执行可能在机器上也可能不在机器上的外部依赖项。

在那里...... :-)

于 2012-04-26T16:00:17.270 回答
1

在 C 中,您可以执行以下操作:

execlp("networksetup", "networksetup", "-setairportnetwork", "$INTERFACE", "$SSID", "$PASSWORD", NULL);
于 2012-04-26T16:13:31.417 回答