如何在 OS X 下以编程方式加入无线网络

How do I join a wireless network programmatically under OS X?

本文关键字:编程 方式加 无线网络 OS      更新时间:2023-10-16

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应用程序中

在此处检查我的代码以获取有关如何使用 NSTaskNSPipe 运行外部命令的runCmd((Mac)创建执行 shell 脚本的 Xcode 应用程序)。

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

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

但我想在不执行外部的情况下加入网络 计算机上可能存在也可能不存在的依赖项。

它会在那里... :-)