Domain Name System (DNS) is a system of hierarchical, distributed, cached databases used with the TCP/IP Internet to determine and IP address from a given host name and also provide the reverse look-up. Authoritative servers provide this information for each domain and sub-domain. In most cases, it is not required to write code that interacts directly with the DNS system. From the socket module, the socket.gethostbyname(), socket.gethostbyaddr() socket.getaddrinfo() and socket.connect() functions do the DNS resolution for us. Even when sending e-mail messages, we generally only need find our SMTP server. It finds the MX records of the destination domain and connects to the appropriate server to send the message. None the less, DNS is a very important part of networking. It is the essential information required to set up the domain. It would accept mainly three types of domains ‘Primary’, ‘Secondary’ and ‘Reverse’. It supports many different record types but the most commonly used record types are A, AAAA, MX, CNAME, NS, SRV, TXT.