搜索以编程方式获取无线接入点信息的方法

时间:2015-02-23 16:27:24

标签: mobile network-programming location ibeacon

我一直在研究一种跟踪设备在建筑物中的位置的方法,起初我打算使用iBeacons。但是我被告知必须通过监视接入点并查找该设备的MAC地址来完成。

我似乎无法找到可以挂钩到接入点并向我提供详细信息的任何通用类型的库或API。事实上,我甚至不知道从哪里开始寻找哪个更难以实现。

有没有人与此打过交道并能指出我正确的方向?任何可接受的编程语言。

4 个答案:

答案 0 :(得分:1)

我从头开始编写软件来做到这一点,但据我所知,没有可用的框架。

基本步骤是:

  1. 获得一些小型,低成本的计算机(Raspberry Pis可以很好地工作)作为传感器,在混杂模式下进行WiFi扫描,收集独特的mac和检测时间。在Linux上,您可以使用C或Java软件来收集这些记录。

  2. 将信息从传感器写入服务器,包括传感器标识符,以便您知道每个设备的检测位置。

  3. 写下大量代码来处理这些数字。

  4. 你应该知道三个大问题:

    1. 移动设备在WiFi上始终无法检测到。如果他们睡着了,或者根本就没有通信,你就不会发现它们。在iOS上,如果设备没有锁定且没有主动使用WiFi,那么每分钟都可以检测到最好的效果。

    2. 在iOS 8+上,mac地址在某些情况下会被扰乱,因此无法跟踪独特的设备。

    3. 从头开始构建以上是很多工作。即使是基本系统,也要想几个月。

    4. 我知道你被要求以这种方式构建它而不是信标,但是如果你能确保每个设备上的应用程序并且可以重新访问这个设计约束,那么信标确实提供了更简单的路径。

答案 1 :(得分:1)

我建议你用iBeacons这样做。

但是:

在IOS 8上,当您尝试从设备获取mac地址时,您将获得此值:02:00:00:00:00:00。

获取设备唯一标识符的最佳方法是使用UIDevice的identifierForVendor方法。

像这样:

UIDevice *device = [[UIDevice alloc]init]; 
NSString *uniqueIdForDevice= [NSString stringWithFormat:@"%@", [device identifierForVendor]]; 
NSLog(@"%@",uniqueIdForDevice);

这为您的公司提供了该设备唯一的ID。

我希望这可以帮到你。

答案 2 :(得分:0)

我不确定您的特定设计有哪些限制,但现有的系统可以让您获得我认为您正在寻找的那种监控。正如davidgyoung所写,在操作系统级别存在一些技术挑战,这些挑战将存在于任何选择的Wi-Fi解决方案中(例如,iOS MAC地址轮换)。除此之外,您可以从思科等Wi-fi硬件制造商的解决方案中获得一些价值:https://meraki.cisco.com/solutions/cmx。他们有一个预先构建的访客数据平台(即显示手机在建筑物/空间的位置)。我认为所有主要的Wi-Fi硬件制造商现在都有类似的东西,而思科可能是顶级的。从记忆中,Aruba便宜得多(我回去~10个月)。

还有像欧几里德分析(http://euclidanalytics.com)这样的软件提供商,他们建立在思科等提供商的硬件和API之上,以提供我认为您想要的访问者信息。

这并不是一份详尽无遗的清单,因为我是从记忆中写下来的,但希望基于上述内容的谷歌搜索应该比滚动自己更有可能获得成功。

祝你好运, 詹姆斯

答案 3 :(得分:0)

如果您想进行室内定位服务,我建议您查看Cisco Connected Mobile Experience软件。

你可以免费试用。

根据我的分析,这是最好的解决方案。我有偏见因为我在那里工作。但是,我做了竞争分析,还没有找到我认为更好的东西。