Как подключиться к беспроводной сети программно под OS X?
C или C++ предпочтительнее. Это не проект Objective-C.
Я уже знаю SSID. В сети может быть безопасность WPA2. Мне нужно подключиться с определенного интерфейса (например, eth2) на случай, если на машине установлено более одного беспроводного интерфейса.
Я понимаю, что существуют различные инструменты командной строки (например, те, что приведены в ответах на этот вопрос), но я бы хотел присоединиться к сети без выполнения внешних зависимостей, которые могут быть или не быть на компьютере. Благодарю.
3 ответа
В C вы можете сделать следующее:
execlp("networksetup", "networksetup", "-setairportnetwork", "$INTERFACE", "$SSID", "$PASSWORD", NULL);
networksetup
Инструмент будет на машине, так как он является частью стандартной операционной системы. Нет необходимости изобретать велосипед.
Из Терминала попробуйте это:
networksetup -setairportnetwork $INTERFACE $SSID $PASSWORD
Или, если вы хотите интегрировать его в приложение Какао /Objective-C:
проверьте мой код здесь для runCmd
( (Mac) Создание приложения Xcode, которое выполняет сценарии оболочки) о том, как запустить внешнюю команду с NSTask
а также NSPipe
,
В этом случае вы должны назвать это так:
[self runCmd:@"/usr/sbin/networksetup"
withArgs:[[NSArray alloc] initWithObjects:@"-setairportnetwork",
@"INTERFACE",
@"SSID",
@"PASS",
nil]];
но я хотел бы присоединиться к сети, не выполняя внешних зависимостей, которые могут быть или не быть на машине.
Это будет там...:-)