gpt4 book ai didi

python - Python 的最终 "Find My Geolocation"解决方案

转载 作者:太空狗 更新时间:2023-10-29 20:31:31 25 4
gpt4 key购买 nike

所以我已经在网上搜索了一段时间,以寻找一个 Python 库来返回你当前的确切位置,但发现没有任何可用的东西,除非你采用廉价且不准确的方法通过你的 IP 地址找到你的位置我已经在我的移动热点上进行了测试,它偏离了 100 英里。

我有另一个解决方案,但它需要将 JavaScript 与 Python 混合,我需要帮助,我才使用 Python/Django 几天。

由于 Python 是服务器端的,我一直没能找到任何可以精确定位您的精确经度和纬度的库。然而,对于客户端 JavaScript,这非常容易,并且不需要任何库:

http://jsfiddle.net/3bERp/1/

所以我想知道是否有任何经验丰富的 Python 程序员可以在这里解释如何运行上面的 javascript 代码,并将 javascript 输出作为 Python 字符串返回:

    python
>>>javascriptOutput = runJavaScript("<script> function showPosition(position) </script>")
>>>print javascriptOutput
<p id="long">-122.15563439999998</p> <p id="lat">37.4458668</p>
>>>

所以我的想法是在我在单个 python 函数中提供的 JSfiddle URL 中运行整个 HTML block ,该函数将返回 JSfiddle 提供的相同结果。

有了这个结果,我可以将它存储在一个 python 变量中,并对它进行一些字符串连接,最终存储我准确的客户端经纬度坐标。

那么是否可以在 Python 函数中运行一些 JavaScript?

您能否使用 Python/Django 以某种方式读取用户在运行 javascript/HTML5 地理定位后看到的 HTML 源代码?

现在我越想这个,我就越开始认为 Javascript 将不得不通过 AJAX 将某些东西传递给 Django 服务器...

最佳答案

现在我脑子里有 4 种方法。我不知道如何实现所有这些。但是,如果您在线搜索,您可能会找到实现它们的方法。

JavaScript 方法(客户端)

您在 javascript 中调用地理定位(就像您实现的那样),然后搜索与该坐标最近的位置的数据库。

Database of zipcodes

MySQL query based on location

另一个 MySQL 查询:latitude/longitude find nearest latitude/longitude - complex sql or complex calculation

然而,这可能有点偏离。您可以通过 ajax 将信息发送回服务器。请记住,用户可能会拒绝分享他/她的位置。

如果您需要示例代码,请告诉我,我会为您编写一个。

IP 地址查找(服务器端)

获取该用户的 IP 地址,并查找远程用户的城市。这并不总能给你一个好的结果。有时它相距数百英里。

如果您不想使用数据库,您可以使用 whois 信息来查找用户所在的城市。

三角测量 WiFi MAC 地址(需要智能手机)

如果您正在构建将作为 Android 或 iPhone 应用程序后端的网络服务,则可以使用他们(Google 或 Apple)的服务,通过使用附近的 GPS 或无线信息来获取用户的确切位置用户。 Android 和 iPhone 上传公共(public) WiFi 的 MAC 地址及其对应的坐标。这是非常准确的,但需要智能手机

在PC上也可以使用同样的方法,但是你必须控制无线网卡,然后扫描附近的SSID,然后用MAC地址查询谷歌服务(这是谷歌的付费服务)

使用网络延迟对互联网上的计算机进行三角测量

有一种方法已获得美国国家安全局的专利。我可以给你一个关于它是如何工作的提示,我可能是错的。

简化版:

在用户的地理位置范围内拥有 3 台服务器。然后尝试从每个服务器打开一个连接并测量连接到客户端需要多快。之后,通过使用光穿过每段距离的时间将该时间转换为距离。创建一个半径为该距离的圆,并根据 3 个圆的交点对用户位置进行三角测量。

您需要从您的 TCP 连接采用的每个路由器计算传播延迟(路由器处理和发送网络数据包的时间),然后从您从连接中获得的数字中减去它。考虑到用户的网速可能很慢。我附上了专利链接

Link for the patent

关于python - Python 的最终 "Find My Geolocation"解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21198956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com