如何创建脚本来查询 Google Browserlocation

How to create a script to query Google Browserlocation

我正在尝试找出一种从 Google 的浏览器位置 API 获取地理位置数据的方法。我找到了 JSON, CURL and Google's geolocation,并让它在范围内的接入点列表中工作,但我有限的 cli-fu 不允许我将其解析为可以发送到 Google.[=18 的内容=]

到目前为止,我有

nmcli -f SSID,BSSID,SIGNAL  dev wifi list
SSID             BSSID              SIGNAL 
ElisaKoti73      00:0C:C3:7F:7E:64  66     
Kanala           00:1E:AB:56:84:3F  65     
TW-EAV510v236E3  00:1E:AB:09:36:E4  44     
WLAN-AP          00:1E:AB:04:C5:C5  32     
meduusan verkko  00:1E:AB:54:C4:E0  25     
Koti_E8BC        EE:43:F6:99:E8:BC  22     
Inteno_E1        00:22:07:13:6A:E0  19

我现在想把它变成类似

的东西
https://maps.googleapis.com/maps/api/browserlocation/json?browser=firefox&sensor=true&
wifi=mac:00:0C:C3:7F:7E:64|ssid:ElisaKoti73|ss:66&

编辑: 改编自@hotmultimedia 的回答,我必须

<code>curl "https://maps.googleapis.com/maps/api/browserlocation/json?browser=firefox&sensor=true&" --data-urlencode "`nmcli -f SSID,BSSID,SIGNAL dev wifi list |perl -ne "if(s/^(.+?)\s+(..:..:..:..:..:..)\s+(.+?)\s*$/&wifi=mac:|ssid:|ss:&/g){print;}"`"

现在可以用了,但准确性还差得很远:"accuracy" : 11178。令人费解的是,如果我在浏览器中复制粘贴相同的地址,返回的 JSON 完全没问题,准确度为 "accuracy" : 52。有什么想法吗?

以下是使用(略微非最佳 :))Perl oneliner 完成此转换的方法:

perl -ne "if(s/^(.+?)\s+(..:..:..:..:..:..)\s+(.+?)\s*$/https:\/\/maps.googleapis.com\/maps\/api\/browserlocation\/json?browser=firefox&sensor=true&wifi=mac:|ssid:|ss:&\n/g){print;}"