Intern
DNS რა არის?
sobes.tech AI
პასუხი AI-სგან
DNS (ඩොමේන් නාම පද්ධතිය) යනු අන්තර්ජාලයට හෝ පෞද්ගලික ජාලයක සම්බන්ධිත පරිගණක, සේවා හෝ ඕනෑම සම්පතකට අදාළ නාමකරණ පද්ධතියකි. එය පහසුව කියවිය හැකි ඩොමේන් නාම (උදාහරණයක් ලෙස google.com) සංඛ්යාත IP ලිපින (උදාහරණයක් ලෙස 172.217.160.142) සමඟ සම්බන්ධ කරයි.
මෙහෙයුම් මූලධර්මය:
- ඉල්ලීම: පරිශීලකයෙකු බ්රවුසරයට ඩොමේන් නාමයක් ඇතුල් කළ විට, ක්ලයින්ට් එකට දේශීය DNS කැෂ් එකට (සාමාන්යයෙන් ජාලය ස්වයංක්රීයව සැකසෙයි) ඉල්ලීමක් යවයි.
- කැෂ්: කැෂ් පළමුව අදාළ ලේඛනයක් තිබේදැයි පරීක්ෂා කරයි. තිබේ නම්, IP ලිපිනය ආපසු ලබා දේ.
- අනුක්රමික ඉල්ලීම: නැති නම්, කැෂ් එකක් මගින් මූලික DNS සේවාදායකයකට ඉල්ලීමක් යවයි.
- අනුයෝජනය: මූලික සේවාදායකය IP ලිපිනය නොදනිමින්,
.com,.orgවැනි TLD (උසස් මට්ටමේ ඩොමේන්) සේවාදායකයට සලකයි. - අනුයෝජනය: TLD සේවාදායකය,
google.comවැනි ඩොමේන් සඳහා අධිකාරිය ඇති DNS සේවාදායකයට සලකයි. - සමහර: අධිකාරිය DNS ලේඛනය A (ලිපිනය) හෝ AAAA (IPv6 ලිපිනය) සොයා IP ලිපිනය ලබා දේ.
- කැෂ් කිරීම හා පිළිතුර: කැෂ් IP ලිපිනය සුරක්ෂිත කර, පරිශීලකට එය යවයි.
- සම්බන්ධතාව: බ්රවුසරය IP ලිපිනය මගින් සේවාදායකය සමඟ සම්බන්ධ වේ.
DNS ලේඛන වර්ග (අධික ප්රචලිත):
| වර්ගය | විස්තරය |
|---|---|
| A | නාමය IPv4 ලිපිනයට සම්බන්ධ කරයි |
| AAAA | නාමය IPv6 ලිපිනයට සම්බන්ධ කරයි |
| CNAME | වෙනත් නාමයකට අනුනාමයක් |
| MX | ඊ-තැපැල් සේවාදායකයන් සඳහා සලකුණු කරයි |
| NS | ඩොමේන් සඳහා අධිකාරිය ඇති DNS සේවාදායකයන් සලකුණු කරයි |
| PTR | ප්රතිවර්තන සෙවීම සඳහා (IP -> නාමය) |
| TXT | පෙළ තොරතුරු ගබඩා කරයි (උදාහරණයක් SPF) |
C# හි DNS භූමිකාව:
C# සමඟ ජාලය සමඟ වැඩ කිරීමේදී, සාමාන්යයෙන් System.Net නාමස්ථානයේ පන්තියන් භාවිතා වේ, උදාහරණයක් ලෙස System.Net.Dns DNS විමසුම් සිදු කිරීමට.
// නාමය අනුව IP ලිපින ලබා ගැනීමේ උදාහරණය
using System;
using System.Net;
// සමුදා ඉල්ලීම සඳහා
IPAddress[] ipAddresses = Dns.GetHostAddresses("www.google.com");
foreach (var ip in ipAddresses)
{
Console.WriteLine(ip);
}
// අසින්ක්රොන ඉල්ලීමේ උදාහරණය (අදික වශයෙන් යෙදුම් නවීකරණය)
async Task ResolveHostAsync()
{
IPAddress[] asyncIpAddresses = await Dns.GetHostAddressesAsync("www.bing.com");
foreach (var ip in asyncIpAddresses)
{
Console.WriteLine(ip);
}
}
// GetHostEntry වැඩි විස්තර ලබා දේ
Task<IPHostEntry> hostEntryTask = Dns.GetHostEntryAsync("ru.stackoverflow.com");
IPHostEntry hostEntry = hostEntryTask.Result; // කාර්යය අවසන් වීම බලාපොරොත්තු වෙමින්
Console.WriteLine($"හොස්ට් නාමය: {hostEntry.HostName}");
Console.WriteLine("ලිපිනයන්:");
foreach (var addr in hostEntry.AddressList)
{
Console.WriteLine($" {addr}");
}
Console.WriteLine("ඇලියස්:"); // බොහෝ විට හිස් ලැයිස්තුව
foreach (var alias in hostEntry.Aliases)
{
Console.WriteLine($" {alias}");
}
DNS අන්තර්ජාලයේ මූලික කොටසක් වන අතර, පරිශීලකයින්ට සහ යෙදුම්වලට අංකීය IP ලිපින වෙනුවට පහසුවෙන් මතක තබාගත හැකි ඩොමේන් නාම භාවිතා කිරීමට ඉඩ සලසයි.