是否可以使用相同的工具让 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 地址来查找该信息。当我离线安装时,它总是要求您选择时区。