Skip to content

DNS - bu domen nomlarini IP manzillarga hal qilish uchun ishlatiladigan protokol. Ushbu vazifada biz asosiy DNS so'rovlariga javob beradigan DNS serverini yaratamiz

Notifications You must be signed in to change notification settings

themusharraf/dns-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Ushbu kod UDP (User Datagram Protocol) soket orqali tarmoqda ma'lumot almashish imkonini beruvchi dastur. Ushbu dastur, IP manzili va port raqami bilan bog'langan soketni yaratadi va ma'lumotlarni olish hamda javob berish bilan shug‘ullanadi.

Quyida batafsil tushuntirish:

1. Import qilish:

import socket

socket moduli soket orqali tarmoqda ma'lumot almashish imkonini beradi. Bu yerda soket UDP orqali ishlatiladi.

2. Asosiy funksiya main:

def main():
    print("Logs from your program will appear here!")

Bu yerda asosiy funksiya boshlangan va print yordamida loglar chop qilinmoqda. Bu loglar sizning testlaringiz yoki dastur ishlashi paytida ko'rish uchun foydali.

3. UDP soket yaratish va uni bog'lash:

udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_socket.bind(("127.0.0.1", 2053))

socket.AF_INET: Bu IPv4 protokolida ishlatiladigan tarmoq oilasini bildiradi (IP manzil). socket.SOCK_DGRAM: Bu UDP protokolini anglatadi. UDP orqali ma'lumotlar "datagram" shaklida yuboriladi, ya'ni ular o'z-o'zicha mustaqil bo'ladi. bind: Soketni o'z IP manzili va porti bilan bog'lash. Bu yerda IP manzil "127.0.0.1" (localhost) va port raqami 2053.

4. UDP orqali ma'lumotlarni olish va javob yuborish:

while True:
    try:
        buf, source = udp_socket.recvfrom(512)
        response = b""
        udp_socket.sendto(response, source)
    except Exception as e:
        print(f"Error receiving data: {e}")
        break

recvfrom(512): Bu soket orqali kelayotgan ma'lumotlarni qabul qiladi, bu yerda 512 baytgacha ma'lumot olinishi mumkin. buf olingan ma'lumotni o'zida saqlaydi, source esa ma'lumot yuborilgan manzilni saqlaydi (IP manzili va port). sendto(response, source): Bu qabul qilingan manzilga (source) javob (response) yuboradi. Bu yerda response bo'sh bo‘lib, hech qanday ma'lumot qaytarilmayapti. except Exception as e: Agar biror xato yuz bersa, dasturning ishlashi to‘xtatiladi va xato haqida ma'lumot chop qilinadi.

5. Natija: Dastur UDP orqali kelgan ma'lumotni qabul qiladi, ammo bu dasturning hozirgi versiyasi hech qanday javob bermayapti (bo'sh response yuborilyapti). Agar kerak bo'lsa, siz bu yerda turli xil javoblarni ishlab chiqishingiz mumkin.

Dastur faqat lokal (localhost) tarmoqda ishlaydi, chunki u "127.0.0.1" IP manzilida bog'langan va faqatgina 2053-port orqali ma'lumotlarni qabul qiladi.

About

DNS - bu domen nomlarini IP manzillarga hal qilish uchun ishlatiladigan protokol. Ushbu vazifada biz asosiy DNS so'rovlariga javob beradigan DNS serverini yaratamiz

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published