C++ 如何在C+中扫描Wifi接入点+;在MacOSX上
我需要在Mac OS XLinux中的C++中扫描并收集有关本地Wifi接入点的信息。这可能使用C++ 如何在C+中扫描Wifi接入点+;在MacOSX上,c++,macos,network-programming,wifi,firebreath,C++,Macos,Network Programming,Wifi,Firebreath,我需要在Mac OS XLinux中的C++中扫描并收集有关本地Wifi接入点的信息。这可能使用Wlan或类似于WlanScan的东西。我有类似的代码在Windows中工作,不可能翻译 这段代码是在FireBreath开发项目中构建的 你有C++ C++上的WiFi接入点的例子或建议吗? < P>你不能用普通C++来做这件事,但是你可以使用ObjuleC++(你的源文件只需要有.mm扩展,你可以用ObjuleC在C++代码中使用)。请看一下框架。 你应该这样写: #import <Core
Wlan
或类似于WlanScan
的东西。我有类似的代码在Windows中工作,不可能翻译
这段代码是在FireBreath开发项目中构建的
<>你有C++ C++上的WiFi接入点的例子或建议吗? < P>你不能用普通C++来做这件事,但是你可以使用ObjuleC++(你的源文件只需要有.mm扩展,你可以用ObjuleC在C++代码中使用)。请看一下框架。 你应该这样写:
#import <CoreWLAN/CoreWLAN.h>
struct AccessPoint
{
string ssid;
string bssid;
int rssi;
};
vector<AccessPoint> ScanAir(const string& interfaceName)
{
NSString* ifName = [NSString stringWithUTF8String:interfaceName.c_str()];
CWInterface* interface = [CWInterface interfaceWithName:ifName];
NSError* error = nil;
NSArray* scanResult = [[interface scanForNetworksWithSSID:nil error:&error] allObjects];
if (error)
{
NSLog(@"%@ (%ld)", [error localizedDescription], [error code]);
}
vector<AccessPoint> result;
for (CWNetwork* network in scanResult)
{
AccessPoint ap;
ap.ssid = string([[network ssid] UTF8String]);
ap.bssid = string([[network bssid] UTF8String]);
ap.rssi = [network rssiValue];
result.push_back(ap);
}
return result;
}
#导入
结构访问点
{
字符串ssid;
字符串bssid;
int-rssi;
};
苹果文档中的vector,但它有点过时(它适用于OS X 10.6)。OS X 10.7中有一些更改。
请注意,CoreWLAN框架需要OS X 10.6或更高版本。谢谢@cody。这看起来非常有希望。我看到scanForNetworksWithSSID
被阻塞了。很好,我已经在异步线程中了。你是说我可以使用Objective-C,因为我在FireBreath工作?(也就是说,据你所知,Objective-C在FireBreath中可以工作吗?)关于FireBreath中的Objective-C,这似乎回答了我的问题:对不起,我不知道FireBreath是什么,但Objective-C主要是运行时的,它是OS X的本机,所以如果你需要为web浏览器制作跨平台/跨浏览器的Internet插件,我认为这将是非常棒的。一站式购物。@DavidManpearl您可以询问您的界面(CWInterface)。属性名称相同。如果接口未连接,则为零