Skip to content
This repository was archived by the owner on Feb 13, 2026. It is now read-only.
/ dns-lookup Public archive

lynkos/dns-lookup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

DNS Lookup

The goal of this project is to practice UDP socket programing and understand binary packet structures by developing a simplified DNS lookup client. You must create your own socket and cannot use any existing DNS library.

Requirements

Tip

If you have trouble deciding between Anaconda and Miniconda, please refer to the table below:

Anaconda Miniconda
New to conda and/or Python Familiar with conda and/or Python
Not familiar with using terminal and prefer GUI Comfortable using terminal
Like the convenience of having Python and 1,500+ scientific packages automatically installed at once Want fast access to Python and the conda commands and plan to sort out the other programs later
Have the time and space (a few minutes and 3 GB) Don't have the time or space to install 1,500+ packages
Don't want to individually install each package Don't mind individually installing each package

Typing out entire Conda commands can sometimes be tedious, so I wrote a shell script (conda_shortcuts.sh on GitHub Gist) to define shortcuts for commonly used Conda commands.

Example: Delete/remove a conda environment named test_env
  • Shortcut command
    rmenv test_env
    
  • Manually typing out the entire command
    conda env remove -n test_env && rm -rf $(conda info --base)/envs/test_env

The shortcut has 80.8% fewer characters!

Installation

  1. Verify that conda is installed

    conda --version
    
  2. Ensure conda is up to date

    conda update conda
    
  3. Enter the directory you want dns-lookup to be cloned in

    • POSIX
      cd ~/path/to/directory
    • Windows
      cd C:\Users\user\path\to\directory
  4. Clone and enter dns-lookup

    git clone https://github.com/lynkos/dns-lookup.git && cd dns-lookup
  5. Create virtual environment from environment.yml

    conda env create -f environment.yml

Usage

  1. Activate dns_env (i.e., virtual environment)
    conda activate dns_env
  2. Confirm dns_env is active
    • dns_env should be in parentheses () or brackets [] before your command prompt, e.g.
      (dns_env) $
    • See which virtual environments are available and/or currently active (active environment denoted with asterisk (*))
      conda info --envs
      OR
      conda env list
  3. Run mydns.py (domain-name is the domain name to be resolved while root-dns-ip is the IPv4 address of a root DNS server on the internet)
    python mydns.py domain-name root-dns-ip
  4. Deactivate dns_env (i.e., virtual environment) when finished
    conda deactivate

About

Net-Centric Computing (CNT 4713) – Project 3.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages