1238106Sdes#!/usr/bin/python 2238106Sdes# vim:fileencoding=utf-8 3238106Sdes''' 4238106Sdes example8-1.py: Example shows how to lookup for MX and NS 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''' 36291767Sdesfrom __future__ import print_function 37238106Sdesimport unbound 38238106Sdes 39238106Sdesctx = unbound.ub_ctx() 40238106Sdesctx.resolvconf("/etc/resolv.conf") 41238106Sdes 42238106Sdesstatus, result = ctx.resolve("nic.cz", unbound.RR_TYPE_MX, unbound.RR_CLASS_IN) 43238106Sdesif status == 0 and result.havedata: 44285206Sdes print("Result:") 45285206Sdes print(" raw data:", result.data) 46291767Sdes for k in sorted(result.data.mx_list): 47285206Sdes print(" priority:%d address:%s" % k) 48238106Sdes 49238106Sdesstatus, result = ctx.resolve("nic.cz", unbound.RR_TYPE_A, unbound.RR_CLASS_IN) 50238106Sdesif status == 0 and result.havedata: 51285206Sdes print("Result:") 52285206Sdes print(" raw data:", result.data) 53291767Sdes for k in sorted(result.data.address_list): 54285206Sdes print(" address:%s" % k) 55238106Sdes 56238106Sdesstatus, result = ctx.resolve("nic.cz", unbound.RR_TYPE_NS, unbound.RR_CLASS_IN) 57238106Sdesif status == 0 and result.havedata: 58285206Sdes print("Result:") 59285206Sdes print(" raw data:", result.data) 60291767Sdes for k in sorted(result.data.domain_list): 61285206Sdes print(" host: %s" % k) 62238106Sdes 63