dnsdb-getdns 0.1.2b2
Query DNS records from dnsdb.io
License: BSD License
Requires Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4

=======
GetDNS
=======

.. image:: https://travis-ci.org/dnsdb-team/getdns.svg?branch=master
    :target: https://travis-ci.org/dnsdb-team/getdns
.. image:: https://coveralls.io/repos/github/dnsdb-team/getdns/badge.svg?branch=master
    :target: https://coveralls.io/github/dnsdb-team/getdns?branch=master
.. image:: https://img.shields.io/pypi/v/dnsdb-getdns.svg
    :target: https://pypi.python.org/pypi/dnsdb-getdns
.. image:: https://img.shields.io/pypi/pyversions/dnsdb-getdns.svg
    :target: https://pypi.python.org/pypi/dnsdb-getdns
.. image:: https://img.shields.io/pypi/l/dnsdb-getdns.svg
    :target: https://pypi.python.org/pypi/dnsdb-getdns

**GetDNS** 是一个使用DnsDB API查询DNS记录命令行工具。

Dependencies
=============

* `DnsDB Python SDK <https://pysdk.dnsdb.io>`_ >= 0.1.2b2

Install
========

::

    pip install --upgrade dnsdb-getdns


Usage
======

查看帮助

::

    getdns -h


Commands
------------
可用子命令


* config 更改配置
* search 查询DNS
* api-user 获取当前API User信息

查看子命令帮助

::

    getdns <command> -h


config
>>>>>>>

``config`` 命令用于配置默认的 ``API ID`` 和 ``API Key`` ，配置该项可以让您在使用 ``search`` ， ``api_user`` 命令时无需再次输入 ``API ID`` 和 ``API Key``

::

    getdns config --api-id <Your API ID> -api-key <Your API Key>


查看当前配置

::

    getdns config --show


恢复默认配置

::

    getdns config --reset


配置代理:

1. HTTP代理

::

    getdns config --proxy http://user:pass@host:port


2. SOCKS5代理

::

    getdns config --proxy socks5://user:pass@host:port

search
>>>>>>>

``search`` 命令用于查询dns记录。没有使用 ``-a`` 或 ``--all`` 参数时，该命令每成功执行一次扣除当前账号一次API请求次数,  且每次执行最多返回50条查询结果

::

    getdns search --domain example.com

``-o`` 参数用于指定输出位置, 默认为 ``-`` , 表示输出到标准输出( ``stdout`` ), 也可以输入到文件中

::

    getdns search --domain example.com -o dns-output.txt

``a`` 或 ``--all`` 参数将会返回全部查询结果, 每次查询会根据结果数扣除当前账号的API请求次数

::

    getdns search --domain example.com  -a -o dns-output.txt


``-m`` 或 ``--max`` 参数限制最多输出查询结果数量。例如限制最多输出5条查询结果：

::

    getdns search --domain example.com -a --max 5


输出格式

``search`` 命令可以通过以下参数改变输出格式

* ``--json`` 指定输出格式为 ``JSON`` ，这是默认选项。
* ``--csv`` 指定输出格式为 ``CSV`` 。
* ``--format <format-string>`` 自定义输出格式。在 ``<format-string>`` 中， ``#{host}`` 将会被DNS记录的host替换， ``#{type}`` 将会被DNS记录的type替换， ``#{value}`` 将会被DNS记录的value替换，其他内容将会被保留。例如:

::

    getdns search --domain exmpale.com --format "host:#{host}, type:#{type}, value:#{value}"

输出结果

::

    host:a1.example.com, type:a, value:1.1.1.1
    host:a2.example.com, type:a, value:1.1.1.2
    host:a3.example.com, type:a, value:1.1.1.3
    host:a4.example.com, type:a, value:1.1.1.4
    ......

只输出IPv4地址

::

    getdns search --domain example.com --type a --format "#{value}"

输出结果

::

    1.1.1.1
    1.1.1.2
    1.1.1.3
    1.1.1.4
    ......

api_user
>>>>>>>>

查看剩余API请求次数

::

    getdns api_user

FAQ
====

1. Mac OS X 使用getdns命令遇到下面错误，您可以查看 `这里 <https://github.com/dnsdb-team/dnsdb-python-sdk/wiki/Tutorials#%E5%AE%89%E8%A3%85%E5%88%B0mac-os-x>`_

::

    requests.exceptions.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:590)

Links
=====

* `DNSDB Official Website <https://dnsdb.io>`_
* `DNSDB Python SDK <https://pysdk.dnsdb.io>`_
* `DNSDB API <https://dnsdb.io/api_introduce>`_