ພາບລວມ
DNS API ສະຫນອງການບໍລິຫານເຕັມຂອງເຂດ DNS ແລະບັນທຶກ. ເຂດທັງຫມົດແມ່ນຈັດຂຶ້ນໃນ VPS.org ຂອງຊື່ເຊີບເວີທີ່ມີສິດອໍານາດທີ່ມີການສ້າງແລະນໍາໃຊ້ໄຟລ໌ເຂດ BIND9 ໂດຍອັດຕະໂນມັດ.
ໂຄງສ້າງພື້ນຖານຂອງម៉ាស៊ីនបម្រើຊື່
ns1.vps.org (38.248.6.195) - ແມ່ແບບຕົ້ນຕໍດ້ວຍການລົງນາມໃນສາຍ DNSSEC
ns2.vps.org (38.248.6.196) - ລູກຄ້າຂັ້ນສອງ
ns3.vps.org (38.248.6.197) - ລູກຄ້າຂັ້ນສອງ
ຄຸນສົມບັດຫຼັກ
ສ້າງ ແລະ ຈັດວາງໄຟລ໌ເຂດ BIND9 ໂດຍອັດຕະໂນມັດ
ເຂດການໂອນຜ່ານການຢັ້ງຢືນ TSIG (ການຖ່າຍທອດແມ່ທັບ-ລູກທັບ)
ສະຫນັບສະຫນູນສໍາລັບປະເພດບັນທຶກ DNS ໃຫຍ່ທັງຫມົດ (A, AAAA, CNAME, MX, TXT, NS, SRV, CAA)
ການກັ່ນຕອງຊື່ໂດເມນ ແລະ ການລະບຸເຂດທີ່ອີງໃສ່ UUID
ເສັ້ນທາງທີ່ຖືກຝັງໄວ້ສຳລັບການຈັດການບັນທຶກສະເພາະເຂດ
ການພິສູດຢືນຢັນຕົວຕົນ
ຄໍາຮ້ອງຂໍ API DNS ທັງຫມົດຕ້ອງການການຢັ້ງຢືນ Token Bearer. ສ້າງ Tokens API ຈາກ dashboard ຂອງບັນຊີຂອງທ່ານທີ່ /account/developers/ ທີ່ມີສິດດັ່ງຕໍ່ໄປນີ້:
dns:list - ເບິ່ງເຂດ DNS ແລະບັນທຶກ
dns:create - ສ້າງເຂດໃໝ່ ແລະ ບັນທຶກ
dns:update - ປ່ຽນແປງເຂດ ແລະ ບັນທຶກທີ່ມີຢູ່ແລ້ວ
dns:delete - ເອົາເຂດແລະບັນທຶກອອກ
dns:* - ເຂົ້າເຖິງການគ្រប់គ្រង DNS ເຕັມ
ຕົວຢ່າງ
Authorization: Bearer vps_abc123def456...
សំខាន់: API tokens ຖືກສະແດງພຽງແຕ່ຄັ້ງດຽວ ໃນລະຫວ່າງການສ້າງ. ເກັບພວກມັນໄວ້ຢ່າງປອດໄພ. ຖ້າທ່ານສູນເສຍ token, ທ່ານຕ້ອງສ້າງ token ໃຫມ່.
ລາຍຊື່ເຂດ DNS ທັງໝົດ
ເກັບລາຍຊື່ທີ່ມີໜ້າ ຂອງເຂດ DNS ທັງໝົດທີ່ເປັນຂອງຜູ້ໃຊ້ທີ່ໄດ້ຮັບການຢັ້ງຢືນ. ສະໜັບສະໜູນການກັ່ນຕອງໂດຍຊື່ໂດເມນ.
ພາລາມິເຕີການສອບຖາມ
ຕົວເລືອກ
ປະເພດ
ຕ້ອງມີການ
ຄໍາອະທິບາຍ
domain
string
ບໍ່
Filter zones by exact domain name (e.g., example.com)
ຕົວຢ່າງການຮ້ອງຂໍ
curl -X GET "https://admin.vps.org/api/v1/dns-zones/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
ចម្លង
import requests
url = "https://admin.vps.org/api/v1/dns-zones/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
response = requests.get(url, headers=headers)
print(response.json())
ចម្លង
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/', {
headers: {'Authorization': 'Bearer YOUR_API_TOKEN'}
});
const zones = await response.json();
console.log(zones);
ចម្លង
ຕົວຢ່າງການຕອບສະໜອງ
[
{
"uuid": "abc123-def456-ghi789",
"domain": "example.com",
"created_at": "2024-01-15T10:30:00Z",
"record_count": 12
},
{
"uuid": "xyz789-uvw456-rst123",
"domain": "myapp.io",
"created_at": "2024-06-20T14:15:00Z",
"record_count": 8
}
]
ພາກສະໜາມຕອບສະໜອງ
ແຄມເປນ
ປະເພດ
ຄໍາອະທິບາຍ
uuid
string
Unique zone identifier (used in API requests)
domain
string
Domain name for this DNS zone
created_at
datetime
Zone creation timestamp (ISO 8601 format)
record_count
integer
Total number of DNS records in this zone
ລະຫັດສະຖານະການຕອບສະໜອງ
200
Successfully retrieved DNS zones list
401
Unauthorized - Invalid or missing API token
403
Forbidden - Token lacks dns:list permission
ເອົາລາຍລະອຽດຂອງເຂດ DNS
ເກັບເອົາຂໍ້ມູນລະອຽດກ່ຽວກັບເຂດ DNS ສະເພາະ, ລວມທັງບັນທຶກທັງໝົດ.
ພາລາມິເຕີເສັ້ນທາງ
ຕົວເລືອກ
ປະເພດ
ຕ້ອງມີການ
ຄໍາອະທິບາຍ
uuid
string
ແມ່ນແລ້ວ
Unique zone identifier
ຕົວຢ່າງການຕອບສະໜອງ
{
"uuid": "abc123-def456-ghi789",
"domain": "example.com",
"created_at": "2024-01-15T10:30:00Z",
"record_count": 5,
"records": [
{
"uuid": "rec-001",
"record_type": "A",
"name": "@",
"value": "192.0.2.1",
"ttl": 3600,
"priority": null,
"created_at": "2024-01-15T10:30:00Z"
},
{
"uuid": "rec-002",
"record_type": "MX",
"name": "@",
"value": "mail.example.com",
"ttl": 3600,
"priority": 10,
"created_at": "2024-01-15T10:32:00Z"
}
]
}
ລະຫັດສະຖານະການຕອບສະໜອງ
200
Successfully retrieved zone details
404
Zone not found or not owned by user
ສ້າງເຂດ DNS
ສ້າງເຂດ DNS ໃຫມ່ສໍາລັບໂດເມນ. ເຂດຈະຖືກເປີດໃຊ້ທັນທີທີ່ VPS.org ຊື່ເຊີບເວີ.
ຮ້ອງຂໍພາລາມິເຕີຂອງຮ່າງກາຍ
ຕົວເລືອກ
ປະເພດ
ຕ້ອງມີການ
ຄໍາອະທິບາຍ
domain
string
ແມ່ນແລ້ວ
Domain name (e.g., example.com)
ຕົວຢ່າງການຮ້ອງຂໍ
curl -X POST "https://admin.vps.org/api/v1/dns-zones/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"domain": "newdomain.com"}'
ចម្លង
import requests
url = "https://admin.vps.org/api/v1/dns-zones/"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
}
data = {"domain": "newdomain.com"}
response = requests.post(url, headers=headers, json=data)
print(response.json())
ចម្លង
const response = await fetch('https://admin.vps.org/api/v1/dns-zones/', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({domain: 'newdomain.com'})
});
const zone = await response.json();
console.log(zone);
ចម្លង
ຕົວຢ່າງການຕອບສະໜອງ
{
"uuid": "new-zone-uuid",
"domain": "newdomain.com",
"created_at": "2026-01-18T16:45:00Z",
"record_count": 0,
"records": []
}
ລະຫັດສະຖານະການຕອບສະໜອງ
201
DNS zone created successfully
400
Bad Request - Invalid domain name or zone already exists
403
Forbidden - Token lacks dns:create permission
ເອົາເຂດ DNS ອອກ
ລຶບເຂດ DNS ແລະ ບັນທຶກທີ່ກ່ຽວຂ້ອງທັງໝົດອອກເປັນນິຕິບຸກຄົນ & # 160; ។ ການກະທຳນີ້ບໍ່ສາມາດບໍ່ເຮັດຄືນໄດ້ & # 160; ។
ພາລາມິເຕີເສັ້ນທາງ
ຕົວເລືອກ
ປະເພດ
ຕ້ອງມີການ
ຄໍາອະທິບາຍ
uuid
string
ແມ່ນແລ້ວ
Unique zone identifier
ລະຫັດສະຖານະການຕອບສະໜອງ
204
Zone deleted successfully (no response body)
403
Forbidden - Token lacks dns:delete permission
404
Zone not found
ລາຍຊື່ບັນທຶກ DNS ໃນເຂດ
ເກັບເອົາບັນທຶກ DNS ທັງໝົດ ສຳ ລັບເຂດທີ່ໄດ້ກຳນົດໄວ້ (ເສັ້ນທາງທີ່ໄດ້ວາງໄວ້ໃນກັນ)
ພາລາມິເຕີເສັ້ນທາງ
ຕົວເລືອກ
ປະເພດ
ຕ້ອງມີການ
ຄໍາອະທິບາຍ
uuid
string
ແມ່ນແລ້ວ
Zone UUID
ຕົວຢ່າງການຮ້ອງຂໍ
curl -X GET "https://admin.vps.org/api/v1/dns-zones/{uuid}/records/" \
-H "Authorization: Bearer YOUR_API_TOKEN"
ຕົວຢ່າງການຕອບສະໜອງ
[
{
"uuid": "rec-001",
"record_type": "A",
"name": "@",
"value": "192.0.2.1",
"ttl": 3600,
"priority": null,
"created_at": "2024-01-15T10:30:00Z"
},
{
"uuid": "rec-002",
"record_type": "MX",
"name": "@",
"value": "mail.example.com",
"ttl": 3600,
"priority": 10,
"created_at": "2024-01-15T10:32:00Z"
}
]
ສ້າງບັນທຶກ DNS ໃນເຂດ
ເພີ່ມບັນທຶກ DNS ໃຫມ່ໄປຍັງເຂດທີ່ໄດ້ກຳນົດໄວ້ (ເສັ້ນທາງທີ່ໄດ້ວາງໄວ້ໃນກັນ)
ຮ້ອງຂໍພາລາມິເຕີຂອງຮ່າງກາຍ
ຕົວເລືອກ
ປະເພດ
ຕ້ອງມີການ
ຄໍາອະທິບາຍ
record_type
string
ແມ່ນແລ້ວ
Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
name
string
ແມ່ນແລ້ວ
Record name (@ for root, subdomain, or FQDN)
value
string
ແມ່ນແລ້ວ
Record value (IP address, hostname, text)
ttl
integer
No
Time to live in seconds (default: 3600)
priority
integer
For MX/SRV
Priority (required for MX and SRV records)
ຕົວຢ່າງການຮ້ອງຂໍ
curl -X POST "https://admin.vps.org/api/v1/dns-zones/{uuid}/records/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"record_type": "A",
"name": "www",
"value": "192.0.2.1",
"ttl": 3600
}'
ចម្លង
import requests
url = f"https://admin.vps.org/api/v1/dns-zones/{zone_uuid}/records/"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
}
data = {
"record_type": "A",
"name": "www",
"value": "192.0.2.1",
"ttl": 3600
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
ចម្លង
ລະຫັດສະຖານະການຕອບສະໜອງ
201
DNS record created successfully
400
Bad Request - Invalid parameters or validation error (e.g., MX record missing priority)
ຈັດການບັນທຶກ DNS (ເຂົ້າໃຊ້ໂດຍກົງ)
ປະຕິບັດການ CRUD ເຕັມ ໃສ່ບັນທຶກ DNS ແຕ່ລະອັນ ໂດຍໃຊ້ UUID ບັນທຶກ.
ປະຕິບັດການທີ່ມີ
GET /api/v1/dns-records/{uuid}/ - Retrieve record details
PUT /api/v1/dns-records/{uuid}/ - Full update (all fields required)
PATCH /api/v1/dns-records/{uuid}/ - Partial update (only changed fields)
DELETE /api/v1/dns-records/{uuid}/ - Delete record
ຄໍາຖາມປາຣາມເຕີ (ສໍາລັບ GET /api/v1/dns-records/)
Parameter
ປະເພດ
ຄໍາອະທິບາຍ
zone
string
Filter records by zone UUID
record_type
string
Filter by record type (A, AAAA, MX, etc.)
ຕົວຢ່າງ: ປັບປຸງ TTL ຂອງບັນທຶກ
curl -X PATCH "https://admin.vps.org/api/v1/dns-records/{rec-uuid}/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ttl": 1800}'
Supported DNS Record Types
ປະເພດ
Purpose
Example Value
Priority Required
A
Maps domain to IPv4 address
192.0.2.1
ບໍ່
AAAA
Maps domain to IPv6 address
2001:0db8::1
ບໍ່
CNAME
Creates alias to another domain
example.com
ບໍ່
MX
Mail server for domain
mail.example.com
ແມ່ນແລ້ວ
TXT
Text record (SPF, DKIM, verification)
v=spf1 include:_spf.google.com ~all
ບໍ່
NS
Nameserver delegation
ns1.example.com
ບໍ່
SRV
Service location record
10 5060 sip.example.com
ແມ່ນແລ້ວ
CAA
Certificate authority authorization
0 issue "letsencrypt.org"
ບໍ່
ວິທີທີ່ດີທີ່ສຸດ
ການຕັ້ງຄ່າ TTL
ຜົນຜະລິດ (ສະຖຽນລະພາບ): 3600-86400 ວິນາທີ (1-24 ຊົ່ວໂມງ)
ກ່ອນການອົບພະຍົບ: 300-600 ວິນາທີ (5-10 ນາທີ) - ຫຼຸດ TTL ກ່ອນການປ່ຽນແປງທີ່ວາງແຜນໄວ້
ການພັດທະນາ: 300-1800 ວິນາທີ (5-30 ນາທີ) ສຳ ລັບການທົດສອບທີ່ໄວກວ່າ
ແບບແບບທົ່ວໄປ
ໂດເມນ root (@): ໃຊ້ບັນທຶກ A/AAAA, ບໍ່ແມ່ນ CNAME
ໂດເມນພາຍໃຕ້ www: ສາມາດໃຊ້ CNAME apuntar ໄປຫາ root ຫຼື ແບ່ງອອກເປັນ A record
អ៊ីមែល (MX): ລວມເອົາຄວາມສຳຄັນເປັນປະຈຳ, ຕົວເລກຕ່ຳ = ຄວາມສຳຄັນສູງ
CNAME: ບໍ່ສາມາດມີຢູ່ຮ່ວມກັນກັບປະເພດບັນທຶກອື່ນໄດ້ສຳລັບຊື່ດຽວກັນ
ຄວາມປອດໄພ
ບັນທຶກ CAA: ລະບຸ CA ໃດສາມາດອອກໃບຢັ້ງຢືນໄດ້
SPF/DKIM/DMARC: ຕັ້ງຄ່າການຢັ້ງຢືນອີເມວ ເພື່ອປ້ອງກັນການຫຼອກລວງName
ກວດສອບປົກກະຕິ: ກວດເບິ່ງບັນທຶກ DNS ທຸກໆສາມເດືອນ, ເອົາລາຍການທີ່ບໍ່ໄດ້ໃຊ້ອອກ
ການຈັດການຂໍ້ຜິດພາດ
ຂໍ້ຜິດພາດທົ່ວໄປ
ລະຫັດສະຖານະ
កំហុស
ວິທີແກ້ໄຂ
400
ឈ្មោះໂດເມນບໍ່ຖືກຕ້ອງ
ຮັບປະກັນວ່າໂດເມນປະຕິບັດຕາມຂໍ້ຕົກລົງການຕັ້ງຊື່ DNS
400
ບັນທຶກ MX ຕ້ອງການຄວາມສຳຄັນ
ລວມ priority ພື້ນທີ່ສຳລັບບັນທຶກ MX ແລະ SRV
401
ຕົວແທນ API ບໍ່ຖືກຕ້ອງ
ຮູບແບບການກວດສອບໂຕຄອນ (ຕ້ອງເລີ່ມດ້ວຍ vps_)
403
ຂາດສິດ
ສ້າງໂຕກັ່ນໃໝ່ດ້ວຍທີ່ຕ້ອງການ dns:* សិទ្ធិ
404
ບໍ່ມີເຂດ/ບັນທຶກ
ກວດສອບ UUID ແລະ ຮັບປະກັນວ່າຊັບພະຍາກອນແມ່ນຂອງບັນຊີຂອງທ່ານ
ຕົວຢ່າງການຕອບໂຕ້ຂໍ້ຜິດພາດ
{
"detail": "MX records require a priority value",
"error_code": "validation_error",
"field": "priority"
}
ທົດສອບການປ່ຽນແປງ DNS
ກວດສອບການແຜ່ກະຈາຍບັນທຶກ
# Query A record
dig example.com A
# Query specific nameserver
dig @ns1.vps.org example.com
# Query MX records
dig example.com MX
# Check all records
dig example.com ANY
ການນໍາໃຊ້ເຄື່ອງມືອອນລາຍ
whatsmydns.net: Check global DNS propagation
dnschecker.org: Multi-location DNS lookup
mxtoolbox.com: Email-related DNS testing