Cập nhật hàng loạt IP mới trên Cloudflare

Cập nhật IP hàng loạt trên Cloudfflare

Giải thích: Nếu sử dụng thủ công, thì việc này khá đau đầu và tốn cực kỳ nhiều thời gian, ví thử mỗi cái mình tốn 1 phút thôi thì sẽ mất cả tháng đến vài tháng với sức người. Thay vào đó mình sẽ sử dụng giải pháp như sau:

Cập nhật IP hàng loạt trên Cloudfflare
Hình minh họa, không liên quan đến bài viết Cập nhật IP hàng loạt trên Cloudfflare

Hướng dẫn sử dụng Python để cập nhật hàng loạt IP trên Cloudflare

Phần 1: Chuẩn bị

  • Môi trường chạy Python: Thì mình đang dùng Amalinux nên sử dụng luôn VPS đó làm môi trường để sử dụng luôn, sử dụng luôn con VPS cũ để cài Python ( đã cài sẵn rồi )
  • IP cũ: xxxxx
  • IP mới: xxxx
  • API Cloudflare : Cái này thì vào tài khoản Cloudflare>My Profile > API Tokens. > Global API Key > lấy cái key là ok

Phần 2: Thực hiện

Bước 1: Đăng nhập vào SSH trên VPS để cài đặt Python

Nếu chưa có thì dùng lệnh

sudo dnf install python3

Sau đó chọn Yes để cập nhật bản mới nhất

Bước 2: Cài đặt Requests: Đảm bảo bạn đã cài đặt thư viện requests trong Python.

pip install requests

Bước 3: tạo file .py, mình sẽ tạo một file tên là cloudflare_dns_update.py bằng lênh

nano cloudflare_dns_update.py

tiếp sau, trong môi trường nano thì dán code sau vào

import requests

# Thông tin API và Domain
api_key = 'YOUR_CLOUDFLARE_API_KEY'
email = '[email protected]'
old_ip = '96.30.197.xxx'
new_ip = '103.72.96.xxx'

# Headers cho request
headers = {
    'X-Auth-Email': email,
    'X-Auth-Key': api_key,
    'Content-Type': 'application/json',
}

# Hàm để cập nhật DNS record
def update_dns_record(zone_id, record_id, record_type, record_name, record_content):
    url = f'https://api.cloudflare.com/client/v4/zones/{zone_id}/dns_records/{record_id}'
    data = {
        'type': record_type,
        'name': record_name,
        'content': record_content
    }
    response = requests.put(url, headers=headers, json=data)
    return response.json()

# Lấy danh sách các DNS records
def get_dns_records(zone_id):
    url = f'https://api.cloudflare.com/client/v4/zones/{zone_id}/dns_records?type=A'
    response = requests.get(url, headers=headers)
    return response.json()

# Lấy danh sách các Zone
def get_zones():
    url = 'https://api.cloudflare.com/client/v4/zones'
    response = requests.get(url, headers=headers)
    return response.json()

# Chính script
if __name__ == '__main__':
    zones = get_zones()
    for zone in zones['result']:
        dns_records = get_dns_records(zone['id'])
        for record in dns_records['result']:
            if record['content'] == old_ip:
                result = update_dns_record(zone['id'], record['id'], 'A', record['name'], new_ip)
                print(f"Updated record {record['name']} in zone {zone['name']} with result: {result}")

Bước 3: Chạy thật Scrips sử dụng lệnh

python3 cloudflare_dns_update.py

Bước 4: Kết quả là

Các IP cũ đã được chuyển sang IP mới rồi nhé. Mình đã thử rồi. thành công thì mới share lên đây thôi,. Tuy nhiên, vì dữ liệu Server nhạy cảm nên không chụp hình hướng dẫn được chi tiết từng bước được. Các bạn cứ tham khảo thôi!

Leave a Reply

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