C或C ++首选。这不是Objective-C项目。
我已经知道SSID了。网络上可能存在WPA2安全性。如果机器有多个无线接口,我需要从特定接口(例如eth2)加入。
我意识到有各种命令行工具(例如this question的答案中提供的那些工具),但我想加入网络而不执行可能会或可能不会出现的外部依赖关系机器。感谢。
答案 0 :(得分:2)
networksetup
工具将在计算机上,因为它是标准操作系统的一部分。没有必要重新发明轮子。
答案 1 :(得分:1)
在C中,您可以执行以下操作:
execlp("networksetup", "networksetup", "-setairportnetwork", "$INTERFACE", "$SSID", "$PASSWORD", NULL);
答案 2 :(得分:0)
在终端上,试试这个:
networksetup -setairportnetwork $INTERFACE $SSID $PASSWORD
或者,如果你想将它集成到Cocoa / Objective-C应用程序中:
在此处查看我的代码runCmd
((Mac) Creating Xcode app that executes shell scripts),了解如何使用NSTask
和NSPipe
运行外部命令。
在这种情况下,您应该将其称为:
[self runCmd:@"/usr/sbin/networksetup"
withArgs:[[NSArray alloc] initWithObjects:@"-setairportnetwork",
@"INTERFACE",
@"SSID",
@"PASS",
nil]];
但是我想加入网络而不需要执行外部服务 计算机上可能存在也可能不存在的依赖关系。
将在那里......: - )