Thu. Jan 23rd, 2025
Spread the love

การอัพเดท DNS ผ่าน DNS API บน Raspberry Pi 4

ตัวอย่างเช่น การใช้งาน Cloudflare DNS API กับ Python บน Raspberry Pi นั้น คุณสามารถเขียนสคริปต์ Python เพื่ออัพเดท IP Address ของเน็ตบ้านคุณไปยังโดเมนที่คุณต้องการ นี่คือขั้นตอนพื้นฐานที่คุณต้องทำ:

  1. ชี้โดเมนเนมของคุณไปใช้บริการ DNS Service ของ Cloudflare
  2. สร้าง DNS A record ขึ้นมา 1 ชื่อ เช่น home.mydomain.com
  3. เขียนสคริปต์ Python ที่จะทำการอัพเดท IP Address ให้กับ home.mydomain.com
  4. ตั้ง Cron job ให้ทำการ Run script นี้เป็นระยะๆ

โดยสคริปต์ Python ที่คุณจะเขียนนั้นจะมีโครงสร้างพื้นฐานดังนี้:

#!/usr/bin/env python
import requests
import json
import sys

IP_API = 'https://api.ipify.org?format=json' # อ่านค่า Public IP
CF_API_KEY = 'your_cloudflare_api_key' # Global API Key จาก Cloudflare
CF_EMAIL = 'your_email@your_domain.com' # อีเมล์ที่ใช้สมัคร Cloudflare
ZONE_ID = 'your_zone_id' # ได้จาก Dashboard ของ Cloudflare
RECORD_ID = 'your_record_id' # ได้จากการรันสคริปต์ครั้งแรก

# ตรวจสอบ RECORD_ID
if not RECORD_ID:
    response = requests.get(
        f'https://api.cloudflare.com/client/v4/zones/{ZONE_ID}/dns_records',
        headers={
            'X-Auth-Key': CF_API_KEY,
            'X-Auth-Email': CF_EMAIL
        }
    )
    print(json.dumps(response.json(), indent=4, sort_keys=True))
    print('Please find the DNS record ID you would like to update and enter the value into the script')
    sys.exit(0)

# อ่านค่า IP ปัจจุบัน
response = requests.get(IP_API)
ip = response.json()['ip']

# อัพเดท DNS record
response = requests.put(
    f'https://api.cloudflare.com/client/v4/zones/{ZONE_ID}/dns_records/{RECORD_ID}',
    json={
        'type': 'A',
        'name': 'home.mydomain.com',
        'content': ip,
        'proxied': False
    },
    headers={
        'X-Auth-Key': CF_API_KEY,
        'X-Auth-Email': CF_EMAIL
    }
)
assert response.status_code == 200
print(f'Updated DNS record for {ip}')

โปรดแทนที่ 

your_cloudflare_api_key ,

your_email@your_domain.com ,

your_zone_id ,

และ  your_record_id  ด้วยข้อมูลของคุณเองครับ และตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่า Cron job ให้รันสคริปต์นี้เป็นประจำเพื่อให้ IP Address ของคุณถูกอัพเดทอย่างต่อเนื่องครับ

Loading

By tikky

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *