diff --git a/Demo/dns/asgethost.py b/Demo/dns/asgethost.py
new file mode 100755
index 0000000..9a90268
--- /dev/null
+++ b/Demo/dns/asgethost.py
@@ -0,0 +1,35 @@
+import sys
+import dnslib
+import dnstype
+import dnsopcode
+import dnsclass
+import socket
+import select
+
+def main():
+    server = 'cnri.reston.va.us'	# How?
+    port = 53
+    opcode = dnsopcode.QUERY
+    rd = 0
+    qtype = dnstype.MX
+    qname = sys.argv[1:] and sys.argv[1] or 'www.python.org'
+    m = dnslib.Mpacker()
+    m.addHeader(0,
+		0, opcode, 0, 0, rd, 0, 0, 0,
+		1, 0, 0, 0)
+    m.addQuestion(qname, qtype, dnsclass.IN)
+    request = m.getbuf()
+    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+    s.connect((server, port))
+    s.send(request)
+    while 1:
+	r, w, x = [s], [], []
+	r, w, x = select.select(r, w, x, 0.333)
+	print r, w, x
+	if r:
+	    reply = s.recv(1024)
+	    u = dnslib.Munpacker(reply)
+	    dnslib.dumpM(u)
+	    break
+
+main()
