| 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() |