如何在 OS X 下以编程方式加入无线网络
How do I join a wireless network programmatically under OS X?
C 或首选C++。这不是一个Objective-C项目。
我已经知道SSID。网络上可能存在WPA2安全性。我需要从特定接口(例如 eth2)加入,以防机器有多个无线接口。
我意识到那里有各种命令行工具(例如,回答此问题时提供的那些),但我想加入网络而不执行机器上可能存在也可能不存在的外部依赖项。谢谢。
> networksetup
工具将位于计算机上,因为它是标准操作系统的一部分。没有必要重新发明轮子。
在 C 中,您可以执行以下操作:
execlp("networksetup", "networksetup", "-setairportnetwork", "$INTERFACE", "$SSID", "$PASSWORD", NULL);
从终端中,试试这个:
networksetup -setairportnetwork $INTERFACE $SSID $PASSWORD
或者,如果你想把它集成到Cocoa/Objective-C应用程序中:
在此处检查我的代码以获取有关如何使用 NSTask
和 NSPipe
运行外部命令的runCmd
((Mac)创建执行 shell 脚本的 Xcode 应用程序)。
在这种情况下,您应该这样称呼它:
[self runCmd:@"/usr/sbin/networksetup"
withArgs:[[NSArray alloc] initWithObjects:@"-setairportnetwork",
@"INTERFACE",
@"SSID",
@"PASS",
nil]];
但我想在不执行外部的情况下加入网络 计算机上可能存在也可能不存在的依赖项。
它会在那里... :-)
相关文章:
- 使用 Gtkmm 以编程方式选择 Gtk::TextView 中的文本
- 在没有管理员权限的情况下,在 c++ 中以编程方式将程序添加到启动
- 如何以编程方式将音频从任何录制设备路由到任何播放设备
- 我是否可以使用 win32 句柄以编程方式记录发送到/接收到 USB/COM 的内容
- 如何以编程方式使窗口全屏显示?
- 终端如何在 shell 提示符下以编程方式阻止退格,以便您无法在其上退格,例如 $ 表示 bash 或 C:\blah\>
- 如何使用打印到 PDF 打印机在 MFC 和 CView 中以编程方式打印而不提示输入文件名?
- 如何以编程方式显示功能区按钮的下拉菜单?
- 是否可以以编程方式构造 std::initializer_list?
- 在 Visual C++ 中以编程方式更改按钮的背景图像
- 附加调试器并以编程方式获取变量地址 Visual Studio
- 以编程方式重新连接断开的 VHD 链
- 如何以编程方式获取任务管理器进程CPU使用率(不是PerfMon API)
- 以编程方式在任何按钮上突出显示 Qt 鼠标悬停按钮
- 以编程方式防止重命名或删除文件,但仍使其可写
- 以编程方式连接子图
- 如何以编程方式区分在内存的堆和堆栈部分创建的对象
- 如何以编程方式查找加载的共享库的版本?
- 如何以编程方式知道Adobe Reader完成了加载文件
- RedHatLinux :是否可以以编程方式加载 libcert.so 共享对象