Created 2019年3月31日15:39
Updated 2019年3月31日17:29
Categories
Python
自宅サーバー
sudo pip3 install requests
でrequestsを入れてください。
update.py
import requests
from requests.auth import HTTPBasicAuth
from pathlib import Path
import json
import logging
update_url = "https://domains.google.com/nic/update"
log_file = Path(__file__).parents[0] / "update.log"
logging.basicConfig(filename=log_file, level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s")
def notyfi_ip(username, password, hostname):
params = {"hostname": hostname}
auth = HTTPBasicAuth(username, password)
response = requests.get(update_url, auth=auth, params=params)
logging.info(response.text)
def road_config_and_exec(conf_path=Path(__file__).parents[0] / "ddns_conf.json"):
ddns_conf_list = json.loads(Path(conf_path).read_text())
for ddns_conf in ddns_conf_list:
username = ddns_conf.get("username")
password = ddns_conf.get("password")
hostname = ddns_conf.get("hostname")
notyfi_ip(username, password, hostname)
if __name__ == "__main__":
road_config_and_exec()
実行ファイルと同じディレクトリに ddns_conf.json として配置してください。
Google Domainsの設定画面で表示される認証情報をリスト形式で登録します。
[
{
"username": "",
"password": "",
"hostname": ""
}
]
0 * * * * python3 /path/to/update.py
実行ファイルと同じディレクトリに update.logとして残ります。
ローテーションとか実装してないので少し心配ですが、1回の実行で2行しかログは出ないですし問題ない・・・かな・・・と。