安装过程如何猜测时区?

安装过程如何猜测时区?

是否可以使用相同的工具让 Ubuntu 猜测它当前所处的时区?

这篇文章提到了我正在寻找的功能(就在第二张图片上方): http://www.linuxforu.com/2012/05/ubuntu-12-04-precise-pangolin-review/

答案1

Ubuntu 使用该ubuntu-geoip包,它查询http://geoip.ubuntu.com/

您可以python-geoip实现同样的目标:

import GeoIP
geo = GeoIP.new(GeoIP.GEOIP_MEMORY_CACHE)
ip = '200.100.50.0'
print geo.country_code_by_addr(ip)

遗憾的是,它还不适用于 ipv6。

答案2

我决定下载 ubiquity 源代码并深入研究。使用 greping timezone 找到相关行,然后发出以下命令:

wget -O - -q http://geoip.ubuntu.com/lookup

并解析生成的xml。

我没有加载 python 或其他程序,而是编写了一个快速 bash 脚本,抓取 xml 并使用 sed 提取时区:

#!/bin/bash

# Fetch timezone from Ubuntu's geoip server
TZ=`wget -O - -q http://geoip.ubuntu.com/lookup | sed -n -e 's/.*<TimeZone>\(.*\)<\/TimeZone>.*/\1/p'`

# Set the current time
cp /usr/share/zoneinfo/$TZ /etc/localtime

答案3

我相信它使用您的互联网连接和 IP 地址来查找该信息。当我离线安装时,它总是要求您选择时区。

相关内容