python:DNS

[admin@fedora bin]$ sudo yum install python-pydns

 

[admin@fedora bin]$ python2.5
Python 2.5 (r25:51908, Nov  6 2007, 16:54:01)
[GCC 4.1.2 20070925 (Red Hat 4.1.2-27)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import DNS
>>> dir(DNS)
['Base', 'Class', 'DNSError', 'DiscoverNameServers', 'DnsAsyncRequest', 'DnsRequ
est', 'DnsResult', 'Error', 'Hpacker', 'Hunpacker', 'Lib', 'Mpacker', 'Munpacker
', 'Opcode', 'PackError', 'Packer', 'ParseResolvConf', 'Qpacker', 'Qunpacker', '
RRpacker', 'RRunpacker', 'Request', 'Result', 'Status', 'Type', 'UnpackError', '
Unpacker', '__builtins__', '__doc__', '__file__', '__name__', '__path__', '__ver
sion__', 'addr2bin', 'asyncore', 'bin2addr', 'defaults', 'dumpM', 'dumpQ', 'dump
RR', 'lazy', 'mxlookup', 'pack16bit', 'pack32bit', 'prettyTime', 'revlookup', 's
ocket', 'string', 'struct_pack', 'struct_unpack', 'testpacker', 'time', 'types',
 'unpack16bit', 'unpack32bit']
>>> dir(DNS.Request)
['__doc__', '__init__', '__module__', 'argparse', 'conn', 'processReply', 'proce
ssTCPReply', 'processUDPReply', 'req', 'sendTCPRequest', 'sendUDPRequest', 'sock
etInit']
>>> DNS.ParseResolvConf()
>>> dom=DNS.mxlookup('msn.com')
>>> dom
[(5, 'mx1.hotmail.com'), (5, 'mx2.hotmail.com'), (5, 'mx3.hotmail.com'), (5, 'mx
4.hotmail.com')]
>>> a=DNS.Request('www.microsoft.com').req().answers
>>> a
[{'name': 'www.microsoft.com', 'data': 'toggle.www.ms.akadns.net', 'typename': '
CNAME', 'classstr': 'IN', 'ttl': 1431, 'type': 5, 'class': 1, 'rdlength': 26}, {
'name': 'toggle.www.ms.akadns.net', 'data': 'g.www.ms.akadns.net', 'typename': '
CNAME', 'classstr': 'IN', 'ttl': 223, 'type': 5, 'class': 1, 'rdlength': 4}, {'n
ame': 'g.www.ms.akadns.net', 'data': 'lb1.www.ms.akadns.net', 'typename': 'CNAME
', 'classstr': 'IN', 'ttl': 223, 'type': 5, 'class': 1, 'rdlength': 6}, {'name':
 'lb1.www.ms.akadns.net', 'data': '207.46.19.254', 'typename': 'A', 'classstr':
'IN', 'ttl': 223, 'type': 1, 'class': 1, 'rdlength': 4}, {'name': 'lb1.www.ms.ak
adns.net', 'data': '207.46.192.254', 'typename': 'A', 'classstr': 'IN', 'ttl': 2
23, 'type': 1, 'class': 1, 'rdlength': 4}, {'name': 'lb1.www.ms.akadns.net', 'da
ta': '207.46.19.190', 'typename': 'A', 'classstr': 'IN', 'ttl': 223, 'type': 1,
'class': 1, 'rdlength': 4}, {'name': 'lb1.www.ms.akadns.net', 'data': '207.46.19
3.254', 'typename': 'A', 'classstr': 'IN', 'ttl': 223, 'type': 1, 'class': 1, 'r
dlength': 4}]
image 
#!/usr/bin/python2.5

# -*- coding: utf-8 -*-

import sys
import DNS

def main():
   DNS.ParseResolvConf()
   ans = DNS.Request('www.microsoft.com').req().answers
   for a in ans:
    if a['typename'] == 'A':
      print a['data'],',',
   print
if __name__ == '__main__':
  main()

カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中