DNS Records
DNS yozuvlari
Brauzeringizga example.com yozganingizda, kompyuteringiz avval o'sha nomni haqiqiy IP manzilga aylantirishi kerak. Buni DNS (Domain Name System) amalga oshiradi, va bu tizimning eng kichik qurilish bloki — DNS yozuvi (record): bitta nomni bitta qiymatga bog'laydigan yozuv.
Har bir DNS yozuvi to'rtta narsani ushlab turadi: qaysi nom haqida so'ralayotgani, yozuv qanday turdagi ma'lumot ekani, o'sha nom uchun qaytariladigan qiymat, va natijani qancha vaqt keshda saqlash mumkinligini bildiruvchi TTL (Time To Live, soniyalarda).
Eng ko'p uchraydigan tur belgilari:
| TUR | MA'NOSI |
|---|---|
A | Domen nomini IPv4 manziliga bog'laydi |
AAAA | Domen nomini IPv6 manziliga bog'laydi |
CNAME | Domen nomini boshqa domenning taxallusi (alias) qiladi |
MX | Domenning pochta serverini ko'rsatadi |
TXT | Domenga erkin matn ma'lumotini biriktiradi |
Bu kursda siz shu yozuvlarni saqlaydigan, keshlaydigan va CNAME zanjirlari orqali haqiqiy javobgacha kuzatib boradigan kichik DNS resolverni bosqichma-bosqich quramiz. Birinchi qadam — yozuvning o'zini ifodalaydigan turni yaratish.
type DNSRecord struct {
Name string
Type string
Value string
TTL int
}Bu — Pointers & Memory kursida ko'rgan NewXxx andazasi qaytadan qo'llaniladigan joy: chaqiruvchi to'rtta qiymatni beradi, konstruktor esa ularni to'liq to'ldirilgan structga yig'adi.
func NewDNSRecord(name, recordType, value string, ttl int) DNSRecord {
return DNSRecord{Name: name, Type: recordType, Value: value, TTL: ttl}
}>_ Exercise
Name string, Type string, Value string, va TTL int (soniyalarda) maydonlariga ega DNSRecord struct'ini aniqlang.
To'liq to'ldirilgan DNSRecord qaytaradigan NewDNSRecord(name, recordType, value string, ttl int) DNSRecord funksiyasini yozing.
Misol:
- •
NewDNSRecord("example.com", "A", "93.184.216.34", 3600)Name: "example.com",Type: "A",Value: "93.184.216.34",TTL: 3600maydonlariga ega DNSRecord qaytaradi
Stuck? Reveal a hint to help you.
Key Takeaway
Key Takeaway:
DNS yozuvi — nom, tur, qiymat va TTL'ni ushlab turuvchi oddiy struct. NewXxx konstruktori chaqiruvchiga to'rtta qiymatni berish va to'liq tayyor yozuvni olishni osonlashtiradi.
NEXT UP
Record Lookup
$ go run main.go
Kodingizni ishga tushiring