1238106Sdes#!/usr/bin/python
2238106Sdes# vim:fileencoding=utf-8
3238106Sdes'''
4238106Sdes mx-lookup.py: Lookup for MX records
5238106Sdes
6238106Sdes Authors: Zdenek Vasicek (vasicek AT fit.vutbr.cz)
7238106Sdes          Marek Vavrusa  (xvavru00 AT stud.fit.vutbr.cz)
8238106Sdes
9238106Sdes Copyright (c) 2008. All rights reserved.
10238106Sdes
11238106Sdes This software is open source.
12238106Sdes
13238106Sdes Redistribution and use in source and binary forms, with or without
14238106Sdes modification, are permitted provided that the following conditions
15238106Sdes are met:
16238106Sdes
17238106Sdes Redistributions of source code must retain the above copyright notice,
18238106Sdes this list of conditions and the following disclaimer.
19238106Sdes
20238106Sdes Redistributions in binary form must reproduce the above copyright notice,
21238106Sdes this list of conditions and the following disclaimer in the documentation
22238106Sdes and/or other materials provided with the distribution.
23238106Sdes
24238106Sdes THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25238106Sdes "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
26238106Sdes TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
27238106Sdes PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
28238106Sdes LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29238106Sdes CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30238106Sdes SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31238106Sdes INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32238106Sdes CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33238106Sdes ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34238106Sdes POSSIBILITY OF SUCH DAMAGE.
35238106Sdes'''
36238106Sdesimport unbound
37238106Sdes
38238106Sdesctx = unbound.ub_ctx()
39238106Sdesctx.resolvconf("/etc/resolv.conf")
40238106Sdes
41238106Sdesstatus, result = ctx.resolve("nic.cz", unbound.RR_TYPE_MX, unbound.RR_CLASS_IN)
42238106Sdesif status == 0 and result.havedata:
43238106Sdes    print "Result:"
44238106Sdes    print "      raw data:", result.data
45238106Sdes    for k in result.data.mx_list:
46238106Sdes        print "      priority:%d address:%s" % k
47238106Sdes
48238106Sdesstatus, result = ctx.resolve("nic.cz", unbound.RR_TYPE_A, unbound.RR_CLASS_IN)
49238106Sdesif status == 0 and result.havedata:
50238106Sdes    print "Result:"
51238106Sdes    print "      raw data:", result.data
52238106Sdes    for k in result.data.address_list:
53238106Sdes        print "      address:%s" % k
54