socktools.examples.simple_dns

This module implements a simple toy DNS server using dnslib to encode/decode packets. To test it, run this module as a script and then query it on port 31337.

class socktools.examples.simple_dns.DNSProtocol(msg_types={}, **kwargs)[source]

Bases: socktools.msgtype_mixin.MsgtypeSendMixin, socktools.msgtype_mixin.MsgtypeStrMixin, socktools.udp_sock.UDPSock

DNS protocol implementation

This class implements the world’s worst DNS server: all hostnames return NXDOMAIN

get_default_handlers()[source]

See base_sock.py

get_default_msg_types()[source]
handle_query(from_addr, msg_type, msg_data)[source]

Responds to DNS queries

This is a crappy DNS server, so we simply dump the request to stdout and then respond with a standard response

parse_msg(data)[source]

Parse a raw packet using dnslib