手写 DDNS 实现,爽到!

0x00.前言

因为电信宽带提供公网ip地址,wz打了个电话就申请到了,然而每次获取到的公网ip并不是固定的,感觉极低的概率能获取到上次的拨号的地址
又需要访问家里的一些服务,开始时是干脆记住ip地址,后来越来越懒了决定干脆用域名的A记录解析好了,于是就有了本文的内容

0x01.代码

核心接口
核心接口

CloudFlare_DDNS.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/env/ python3
# -*- coding: utf-8 -*-
"""
:Author: yuangezhizao
:Time: 2019/7/18 0018 19:40
:Site: https://www.yuangezhizao.cn
:Copyright: © 2019 yuangezhizao <root@yuangezhizao.cn>
"""
import time

import requests

headers = {
'X-Auth-Email': '<rm>',
'X-Auth-Key': '<rm>',
'Content-Type': 'application/json',
}


def update_dns_record():
ip = requests.get('https://lab.yuangezhizao.cn/ip').json()['IP']

data = '{"type":"A","name":"home.yuangezhizao.cn","content":"' + ip + '"}'

response = requests.put(
'https://api.cloudflare.com/client/v4/zones/<zone_identifier>/dns_records/<identifier>/',
headers=headers, data=data)

print(response.json())


try:
update_dns_record()
except Exception as e:
print(e)

zone_identifieridentifier不方便确定的话,可以F12来下官方页面,那个页面走的接口数据也是一样的

0x02.定时运行

Windows计划任务请!群辉大法好!
套件中心里可以安装Python3,再开启SSH服务,连进去之后安装pip3就可以下载requests包了hhh

Python3
Python3
任务计划
任务计划
常规
常规
计划
计划
任务设置
任务设置
未安装包
未安装包
运行成功
运行成功

未完待续……