以编程方式创建 Ad-Hoc 网络 OS X
Programmatically create Ad-Hoc network OS X
我将如何在 OS X 上创建具有指定 SSID 和密码的无线 adhoc 网络?我尝试查看 networksetup
手册页,但没有想出任何办法来完成此操作。我应该使用另一个命令吗?
如果您不习惯使用命令行,您可以按照说明 here 进行设置,只需使用系统偏好设置 > 共享 > Internet 共享即可设置 ad-hoc 网络。在此选项卡中,您可以设置 ad-hoc 网络并指定 SSID 等。当然,这是一种非常基本的设置方式,但它对用户非常友好,但它没有为您提供设置方式它使用终端。终端中的networksetup
命令,你用的是networksetup -printcommands
还是networksetup -help
?这提供了额外的信息,因为没有手册页。
我不熟悉,但另外找到了使用 startHostAPModeWithSSID
命令的参考 here or using the /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -i
command per this server fault entry
除了编写 Swift 脚本之外,我没有找到任何真正的方法来做到这一点:
import Foundation
import CoreWLAN
var networkName = "foo";
var password = "bar";
var error: NSError?
let iface = CWWiFiClient.sharedWiFiClient().interface()
let success = iface.startIBSSModeWithSSID(
networkName.dataUsingEncoding(NSUTF8StringEncoding),
security: CWIBSSModeSecurity.WEP104,
channel: 11,
password: password as String,
error: &error
)
if !success {
println(error?.localizedDescription)
} else {
NSRunLoop.currentRunLoop().run()
}
在 OSX 10.13 中,我不得不将@dan-ramos 的代码修改为:
import Foundation
import CoreWLAN
let networkName = "foo"
let password = "bar"
if let iface = CWWiFiClient.shared().interface() {
do {
try iface.startIBSSMode(
withSSID: networkName.data(using: String.Encoding.utf8)!,
security: CWIBSSModeSecurity.WEP104,
channel: 11,
password: password as String
)
print("Success")
} catch let error as NSError {
print("Error", error)
exit(1)
}
} else {
print("Invalid interface")
exit(1)
}
我将如何在 OS X 上创建具有指定 SSID 和密码的无线 adhoc 网络?我尝试查看 networksetup
手册页,但没有想出任何办法来完成此操作。我应该使用另一个命令吗?
如果您不习惯使用命令行,您可以按照说明 here 进行设置,只需使用系统偏好设置 > 共享 > Internet 共享即可设置 ad-hoc 网络。在此选项卡中,您可以设置 ad-hoc 网络并指定 SSID 等。当然,这是一种非常基本的设置方式,但它对用户非常友好,但它没有为您提供设置方式它使用终端。终端中的networksetup
命令,你用的是networksetup -printcommands
还是networksetup -help
?这提供了额外的信息,因为没有手册页。
我不熟悉,但另外找到了使用 startHostAPModeWithSSID
命令的参考 here or using the /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -i
command per this server fault entry
除了编写 Swift 脚本之外,我没有找到任何真正的方法来做到这一点:
import Foundation
import CoreWLAN
var networkName = "foo";
var password = "bar";
var error: NSError?
let iface = CWWiFiClient.sharedWiFiClient().interface()
let success = iface.startIBSSModeWithSSID(
networkName.dataUsingEncoding(NSUTF8StringEncoding),
security: CWIBSSModeSecurity.WEP104,
channel: 11,
password: password as String,
error: &error
)
if !success {
println(error?.localizedDescription)
} else {
NSRunLoop.currentRunLoop().run()
}
在 OSX 10.13 中,我不得不将@dan-ramos 的代码修改为:
import Foundation
import CoreWLAN
let networkName = "foo"
let password = "bar"
if let iface = CWWiFiClient.shared().interface() {
do {
try iface.startIBSSMode(
withSSID: networkName.data(using: String.Encoding.utf8)!,
security: CWIBSSModeSecurity.WEP104,
channel: 11,
password: password as String
)
print("Success")
} catch let error as NSError {
print("Error", error)
exit(1)
}
} else {
print("Invalid interface")
exit(1)
}