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

Programmatically Get a List of Wireless Access Points

本文关键字:接入 入点 列表 编程 方式 获取      更新时间:2023-09-26

这是一个通用的编程问题,尽管我更喜欢Node.js面向对象的解决方案。是否有任何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:这里的准确性是如何表示的?我很确定这不是一个百分比,因为其他列出的访问点较少的请求返回的是一个更高的整数。例如,当删除除第一个列出的WAP之外的所有WAP时,我得到的准确度为43000.0

我一直在研究Node版本的prey与类似的谷歌服务交互的方式,它遵循同样的方式传递WAP及其信息列表。我正试图从他们的代码中提取完成这项任务的部分,但我甚至很难让项目正常运行。如果有人有任何信息,我将不胜感激,因为我心中有一个利用此类技术的精彩项目。谢谢

这实际上只能通过Java小程序或主机上的应用程序实现。Chrome和其他浏览器通过在用户计算机上安装应用程序来实现这一点。该应用程序通过Https请求安全地转发数据,并将您的mac-id和ssid传递给Google。在这里,谷歌回复了它对你的位置的最佳猜测。

node_wifi_location npm包从本地机器的无线卡中检索可用无线接入点的列表,并可选地将其传递到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
});