以编程方式获取无线接入点的列表

这是一个普遍的编程问题,虽然我更喜欢Node.js – 解决scheme。 是否有任何JavaScript或.NET API来检索无线接入点列表及其关联数据(SSID,MAC地址等)? 我使用TamperData来查看当你与Firefox分享你的位置时会发生什么,并得到这个请求的URL:

https://maps.googleapis.com/maps/api/browserlocation/json?browser=firefox&sensor=true&wifi=mac:b8-c7-5d-07-6e-cf|ssid:TV2 Network|ss:-58&wifi=mac:00-13-10-8d-a7-32|ssid:LUBIN|ss:-61&wifi=mac:62-4c-fe-9c-08-18|ssid:airportthru|ss:-73&wifi=mac:00-24-93-0c-49-e0|ssid:Custom Gifts Memphis|ss:-87&wifi=mac:98-fc-11-69-35-46|ssid:linksys|ss:-87&wifi=mac:00-0f-cc-6d-ba-ac|ssid:3333|ss:-88&wifi=mac:40-b7-f3-5b-2c-60|ssid:ATT456|ss:-88&wifi=mac:00-c0-02-7d-5f-4e|ssid:iHub_0060350392e0|ss:-89&wifi=mac:00-24-b2-d5-df-9a|ssid:Memphis CPA|ss:-89&wifi=mac:06-02-6f-c3-06-27|ssid:3333|ss:-89&wifi=mac:00-27-0d-55-c3-20|ssid:custard|ss:-90&wifi=mac:a2-a1-15-0d-a8-68|ssid:SETUP|ss:-90&wifi=mac:00-0f-cc-76-5b-2c|ssid:3545 2340|ss:-92&wifi=mac:c0-3f-0e-6e-ac-34|ssid:patricia|ss:-92

…它被执行时,返回一个JSON对象,正是我正在寻找的: 纬度和经度坐标 。 这个例子的对象是:

{ "accuracy" : 49.0, "location" : { "lat" : 35.06993630, "lng" : -89.88568730 }, "status" : "OK" }

CURIOUS:这里的准确度如何? 我相当肯定,这不是一个百分比,因为其他请求列表less访问点返回一个更高的整数。 例如,当除了第一个列出的每个WAP之外,我得到一个43000.0的准确性。

我一直在研究Node版本的猎物与一个类似的Google服务交互的方式,它遵循同样的方式来传递一个WAPs及其信息列表。 我试图提取他们的代码,完成这个任务的位,但我有麻烦,甚至让项目正常运行。 如果有人有任何信息,我将不胜感激,因为我有一个很好的项目,使用这种技术。 谢谢!

这只能通过Java applet或主机上的应用程序才能实现。 Chrome和其他浏览器通过在用户计算机上安装应用程序来实现这一点。 此应用程序通过一个Https请求安全地转发数据,并传递您的mac id ansid来让Google说。 这里谷歌回答与您的位置最好的猜测。

node_wifi_location npm软件包从本地机器的无线网卡中检索可用的无线接入点列表,并可select将它们传递给Google位置API以检索机器的位置。 它依赖于操作系统的wifi命令行实用程序,因为每个平台都有自己的访问wifi硬件的API。 在任何浏览器中都没有用于检索访问点列表的JavaScript API,只有用于检索位置的API( HTML5地理定位API )。

 var wifiLocation = require('wifi_location'); wifiLocation.wifiTowers(function (err, accessPoints) { // accessPoints contains an array of access point objects // with ssid, mac_address, signal_strength keys }); wifiLocation.location(function (err, location) { // location contains the location object from the Google Maps API });