Можно ли использовать тот же инструмент, чтобы Ubuntu угадала, в каком часовом поясе он находится в настоящее время?
В этой статье упоминается функция, которую я ищу (чуть выше второй картинки): http : //www.linuxforu.com/2012/05/ubuntu-12-04-precise-pangolin-review/
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.
Я решил скачать повсеместный источник и отыскивать его. 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
Я полагаю, что он использует ваше интернет-соединение & amp; IP-адрес, чтобы найти эту информацию. Когда я устанавливаю автономно, он всегда просит вас выбрать часовой пояс.