如何识别python中的当前位置?
Posted
技术标签:
【中文标题】如何识别python中的当前位置?【英文标题】:How to recognize current location in python? 【发布时间】:2010-06-30 13:17:03 【问题描述】:我的客户在德国和美国有两个办公室,python 程序应该可以识别办公室位置。实现这一点的最优雅的方式是什么?它只需要承认这个国家。此外,也可能没有永久的互联网连接。该程序适用于 Windows,但解决方案应独立于操作系统。
有什么建议吗? 谢谢
【问题讨论】:
【参考方案1】:AFAIK,没有优雅的解决方案。你可以做出有根据的猜测,但是,举个例子:我在德国拔掉笔记本电脑的电源,然后去了美国。我把它插在美国办公室 - 区域设置相同,时区没有改变,现在呢?
你可以猜测的东西:
地区和语言设置(但美国的德国人可以使用 de_DE) 时区(但我们是在纽约市还是在巴西?相同的 TZ 偏移量;在您的情况下,(PDT/EDT)和 CET 已经足够不同了) 内部 IP 地址(假设您的办公室有不同的内部地址(例如“10.5.20.0/24 - 德国,192.168.4.0/24 - 美国”;*** 怎么样,未连接的设备怎么样?) 外部 IP 地址(如果您需要美国/欧洲规模的准确性,这是可以通过的;当然,*** 会搞砸,问题是外部连接可能不可用) 保留哪台计算机所在位置的列表(混乱且难以维护) 保留用户所在位置的列表 记住这台计算机在上次程序启动时的位置(以及是否手动更正)通过为这些事物中的每一个分配一个分数,并检查每个事物,您可以获得计算机所在位置的概率分数。不过,您可能会得到一些不正确的猜测,因此也请手动覆盖。
综合得分在一般情况下可能相当准确;你需要做的是找到边缘和角落的情况,然后找到一些方法来识别它们。
【讨论】:
这是真的! :( 到目前为止我一直坚持使用计算机名称,因为它们是不同的。但是谁知道将来它们会统一...... 好点。我认为在这种情况下,允许用户手动更改位置的下拉列表(并且可能存储在某些首选项中)是最好的方法。 是的!我将在下一次以这种方式实施......如果我确定 time.timezone 在美国会产生积极的价值,它可以部分解决我的问题吗? @koleto:是的,每个都可以让你对自己的位置有信心; TZ 是一个很好的指标。 EDT 应该是 GMT-06、CET GMT+1(或 DST 中的 GMT+2)。配置错误的计算机或旅行的笔记本电脑可以设置为任何值 - 这可能是一个主要问题或根本没有,这取决于这些问题的普遍程度。 @koleto:一直在尝试类似的东西——因为我们有相当不常见的 IPv4 子网,我只要认识到这一点就可以逃脱(还有谁使用 172.16.91.0/24?),但是,如果两个办公室都使用大多数消费级路由器上预设的默认 192.168.0.0/24,则仅靠它是不够的。以上是关于如何识别python中的当前位置?的主要内容,如果未能解决你的问题,请参考以下文章
确定当前Python环境中的site-packages目录位置