似乎有一个名为的包geoclue,它使用 Mozilla 的位置服务来查找无线接入点及其已知位置,但似乎没有用于此的命令行界面。还有另一种方法吗?任何聪明的黑客?
如果您想要基于 IP 的查找...(但您必须修复输出的 HTML 格式)
wget http://cqcounter.com/whois/my_ip_address.php && egrep "IP Location|City|Latitude|Longitude" my_ip_address.php
Run Code Online (Sandbox Code Playgroud)
这是我自己的最佳答案,它尝试了 Ubuntu 中可用的所有不同的 geoclue 提供程序:
apt-get install geoclue geoclue-ubuntu-geoip python-geoclue geoclue-yahoo geoclue-plazes geoclue-localnet geoclue-gypsy
echo "#!/usr/bin/env python
import Geoclue
providers = 'Gypsy, Hostip, Localnet, Plazes, Skyhook, Yahoo, Ubuntu GeoIP'
providers = providers.split(', ')
for provider in providers:
POS_PROVIDER = provider
location = Geoclue.DiscoverLocation()
location.init()
location.set_position_provider(POS_PROVIDER)
position = location.get_location_info()
print provider
print position['latitude']
print position['longitude']
" > location.py
python location.py
Run Code Online (Sandbox Code Playgroud)
这导致:
Gypsy
0.0
0.0
Hostip
39.8121
-76.9837
Localnet
39.8121
-76.9837
org.freedesktop.DBus.GLib.UnmappedError.GeoclueErrorQuark.Code1: Could not understand reply from server
Plazes
39.8121
-76.9837
org.freedesktop.DBus.GLib.UnmappedError.GeoclueErrorQuark.Code1: Couldn't parse response from web service
Skyhook
39.8121
-76.9837
Yahoo
39.8121
-76.9837
Ubuntu GeoIP
40.6501
-73.9496
Run Code Online (Sandbox Code Playgroud)
这是向前迈出的一大步,但似乎所有提供商都在使用基于 IP 的查找,而我的 VPN 完全无法做到这一点。似乎应该有一个仅使用 wifi 接入点的提供商,但我还没有找到。
| 归档时间: |
|
| 查看次数: |
6027 次 |
| 最近记录: |