greynoise


Namegreynoise JSON
Version 2.1.0 PyPI version JSON
download
home_pagehttps://greynoise.io/
SummaryAbstraction to interact with GreyNoise API.
upload_time2024-02-07 21:19:55
maintainer
docs_urlNone
authorGreyNoise Intelligence
requires_python>=3.0, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*
licenseMIT
keywords internet scanning threat intelligence security
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ================
Python GreyNoise
================

.. image:: https://circleci.com/gh/GreyNoise-Intelligence/pygreynoise.svg?style=shield
    :target: https://circleci.com/gh/GreyNoise-Intelligence/pygreynoise

.. image:: https://sonarcloud.io/api/project_badges/measure?project=GreyNoise-Intelligence_pygreynoise&metric=coverage
    :target: https://sonarcloud.io/dashboard?id=GreyNoise-Intelligence_pygreynoise

.. image:: https://readthedocs.org/projects/greynoise/badge/?version=latest
    :target: http://greynoise.readthedocs.io/en/latest/?badge=latest

.. image:: https://badge.fury.io/py/greynoise.svg
    :target: https://badge.fury.io/py/greynoise

.. image:: https://img.shields.io/badge/License-MIT-yellow.svg
    :target: https://opensource.org/licenses/MIT

.. image:: https://quay.io/repository/greynoiseintel/pygreynoise/status
    :target: https://quay.io/repository/greynoiseintel/pygreynoise

This is an abstract python library built on top of the `GreyNoise`_ service. It is preferred that users use this library when implementing integrations or plan to use GreyNoise within their code. The library includes a small client to interact with the API.

.. _GreyNoise: https://greynoise.io/

Documentation
=============
Documentation is available here: `Documentation`_

.. _Documentation: https://developer.greynoise.io/docs/libraries-sample-code

Quick Start
===========
**Install the library**:

``pip install greynoise`` or ``python setup.py install``

**Save your configuration**:

``greynoise setup --api-key <your-API-key>``

Versioning
==========
This python package follows semantic versioning. According to this:

* We will NEVER push a breaking change without a major version release.
* We will only add new features and/or bug fixes with minor version releases.
* We will only do bug fixes for patch version release.

As such, we recommend you pin the dependency on this SDK to only allow minor version changes at most:

::

    # allow patch version increments
    greynoise~=1.4.0

    # allow minor version increments
    greynoise~=1.4


Usage
=====
::

    Usage: greynoise [OPTIONS] COMMAND [ARGS]...

      GreyNoise CLI.

    Options:
      -h, --help  Show this message and exit.

    Commands:
      account         View information about your GreyNoise account.
      alerts          List, create, delete, and manage your GreyNoise alerts.
      analyze         Analyze the IP addresses in a log file, stdin, etc.
      feedback        Send feedback directly to the GreyNoise team.
      filter          Filter the noise from a log file, stdin, etc.
      help            Show this message and exit.
      interesting     Report one or more IP addresses as "interesting".
      ip              Query GreyNoise for all information on a given IP.
      ip-multi        Perform Context lookup for multiple IPs at once.
      query           Run a GNQL (GreyNoise Query Language) query.
      quick           Quickly check whether or not one or many IPs are "noise".
      repl            Start an interactive shell.
      riot            Query GreyNoise IP to see if it is in the RIOT dataset.
      setup           Configure API key.
      signature       Submit an IDS signature to GreyNoise to be deployed to...
      similar         Query GreyNoise IP to identify Similar IPs.
      stats           Get aggregate stats from a given GNQL query.
      timeline        Query GreyNoise IP to identify Similar IPs.
      timelinehourly  Query GreyNoise IP to identify Similar IPs.
      version         Get version and OS information for your GreyNoise...




=========
Changelog
=========

Version `2.1.0`_
================
**Date**: February 07, 2024

* API client:

  * None

* CLI:

  * Fixed stats command display to show correct countries
  * Fixed similar command to handle non-noise IP response

* Dependencies:

  * Updated requests to version 2.31.0
  * Updated cachetools to version 5.3.1
  * Removed ipaddress as a required package

Version `2.0.1`_
================
**Date**: April 14, 2023

* API client:

  * Updated timeline commands to support 90 day lookback period

* CLI:

  * Updated timeline commands to support 90 day lookback period

* Dependencies:

  * Updated ansimarkup to version 1.5.0
  * Updated dict2xml to version 1.7.3
  * Updated itertools to version 9.1.0
  * Updated requests to version 2.28.2

Version `2.0.0`_
================
**Date**: February 15, 2023

* BREAKING CHANGE:

  * Removed support for python 3.5

* API client:

  * Added `similar` command to support IP Similarity lookups
  * Added `timeline` command to support IP Time Series Single Attribute lookups
  * Added `timelinehourly` command to support IP Time Series Hourly Summary lookups
  * Added `timelinedaily` command to support IP Time Series Daily Summary lookups
  * Added `exclude_raw` parameter to query command to reduce issues with default behavior in integrations

* CLI:

  * Added `similar` command to support IP Similarity lookups
  * Added `timeline` command to support IP Time Series Single Attribute lookups
  * Added `timelinehourly` command to support IP Time Series Hourly Summary lookups
  * Added `timelinedaily` command to support IP Time Series Hourly Summary lookups

* Dependencies:

  * Updated dict2xml to version 1.7.2
  * Updated colorama to version 0.4.6
  * Updated cachetools to version 5.3.0

Version `1.3.0`_
================
**Date**: September 07, 2022

* API client:

  * Rework logging to remove structlog predefined logging to follow best practices
  * Update the `quick` command to use a POST API request instead of a GET API request
  * Fix bug with `ip_multi` preventing lists of more than 1000 entries from returning correct data
  * Fix bug with `ip_multi` when cache is disabled not returning correct values
  * Fix bug with `ip_multi` where `include_invalid` parameter was not working

* CLI:

  * None

* Dependencies:

  * Updated Click to 8.1.3
  * Updated colorama to 0.4.5
  * Updated jinja2 to 3.1.2
  * Updated more-itertools to 8.14.0
  * Update requests to 2.28.1
  * Removed structlog

Version `1.2.1`_
================
**Date**: June 03, 2022

* API client:

  * None

* CLI:

  * Add missing HASSH values to output for IP and QUERY commands
  * Remove unused PCAP command

* Dependencies:

  * Update jinja to 3.1.0
  * Update dict2xml to 1.7.1
  * Update Click to 8.1.2
  * Update more-itertools to 8.13.0
  * Update cachetools to 5.2.0

Version `1.2.0`_
================
**Date**: September 03, 2021

* API client:

  * Add ip_multi command to support bulk IP Context lookups
  * Fix issue with "include_invalid" option on quick command failing with "riot" key missing

* CLI:

  * Add ip-multi command to support bulk IP Context lookups
  * Add support for comma separated IP lists for ip-multi and quick commands
  * Add size and scroll arguments for query and stats command
  * Update quick command to not error completely when non-routable IP is passed as an input in a list

* Dependencies:

  * Added colorama dependency
  * Update Click to 8.0.3
  * Updated cachetools to 5.0.0
  * Updated jinja to 3.0.3
  * Updated more-itertools to 8.12.0
  * Updated requests to 2.27.1
  * Updated structlog to 21.5.0

Version `1.1.0`_
================
**Date**: June 23, 2021

* API client:

  * Update filter command to use new quick endpoint with noise/riot updates
  * Update analyze command to use new quick endpoint with noise/riot updates

* CLI:

  * Update quick command to handle quick endpoint noise/riot updates
  * Add support for RIOT trust_level output

* Dependencies:

  * Updated Click to 8.0.1

Version `1.0.0`_
================
**Date**: June 02, 2021

*** Removed Support for Python2 - BREAKING CHANGE ***

* API client:

  * Fixed error handling for both `error` and `message` responses
  * Implemented ipaddress package for IP validation to prevent non-routable IP addresses from being
    sent for query to the API

* CLI:

  * Updated warning messages to help identify invalid vs non-routable IPs

* Dependencies:

  * Updated cachetools to 4.2.2
  * Updated six to 1.16.0
  * Updated jinja2 to 3.0.1 for py36 and py37
  * Updated click-repl to 0.2.0
  * Updated more-itertools to 8.8.0

Version `0.9.1`_
================
**Date**: May 05, 2021

* CLI:

  * #465: Fixed error handling on expired API key

* Dependencies:

  * Updated cachetools to 4.2.2

Version `0.9.0`_
================
**Date**: April 21, 2021

* API client:

  * Removed rouge debug statement from analysis command

* CLI:

  * Fixed query command to display text output for queries with more than 10k results
    * Query now limits results to 10 on the text output

Version `0.8.0`_
================
**Date**: March 26, 2021

* API client:

  * Added support for Community API
  * Added information about "integration_name" parameter to docs
  * **BREAKING CHANGE** Updated test_connection() to use /ping endpoint and return API response
    message and exception instead of string values

* CLI:

  * Added support for Community API
  * Updated Analyze command to include RIOT
  * Changed default behavior to no longer use `query`.  Invalid commands return error now

* Dependencies:

  * Updated cachetools to 4.2.1
  * Updated jinja2 to 2.11.3
  * Updated more-itertools to 8.7.0
  * Update structlog to 21.1.0


Version `0.7.0`_
================
**Date**: January 07, 2021

* API client:

  * Add "include_invalid" option to QUICK lookup to return invalid IPs as part of the JSON response
  * Added support for new /riot endpoint
  * Updated logic in quick to better handle non-list format input ('ip_1,ip_2')instead of
    ['ip_1','ip_2']
  * Added ability to configure CACHE TTL and CACHE MAX SIZE instead of only using hardcoded defaults

* CLI:

  * Added support for new riot command
  * Updated json_formatter for query commands to return data only as New Line Delimited JSON

* Dependencies:

  * Updated sphinx to 3.4.0
  * Updated structlog to 20.2.0 for python 3.6 and 3.7

Version `0.6.0`_
================
**Date**: December 21, 2020

* API client:

  * Added ``test_connection`` method to allow for integrations to validate connection and API key

* CLI:

  * Added spoofable and CVE outputs where possible

* Both API client and CLI:

  * Fix IP_Validation method bug which was preventing valid IPs from being submitted

Version `0.5.0`_
================
**Date**: December 16, 2020

* API client:

  * add ``metadata`` method.
  * replace `dicttoxml` with `dict2xml` for license-compatibility.

* Both API client and CLI:

  * Update dependencies to the latest version
  * Add support for PROXY usage
  * Update the IP validator to ensure better validation

Version `0.4.1`_
================
**Date**: January 3, 2020

* API client:

  * add ``spoofable`` field.

Version `0.4.0`_
================
**Date**: November 18, 2019

* API client:

  * add ``interesting`` method.
  * add ``filter`` method.
  * add ``analyze`` method.
  * add ``scroll`` and ``size`` parameters to ``query`` method.
  * add ``api_server`` and ``integration_name`` parameters to ``__init__`` method.

* CLI:

  * add ``interesting`` subcommand.
  * add ``filter`` subcommand.
  * add ``analyze`` subcommand.
  * add ``api_server`` option to setup subcommand.

* Both API client and CLI:
  * use structlog logging library.

Version `0.3.0`_
================
**Date**: September 06, 2019

* API client:

  * rename API client methods to match CLI command names.
  * use LRU cache for IP context and quick check calls.

* CLI:

  * add help, repl and version subcommands.
  * global options moved to those subcommands where they apply.
  * make request timeout configurable.


Version `0.2.2`_
================
**Date**: August 28, 2019

* CLI:

  * fix ``setup`` subcommand when configuration directory doesn't exist.


Version `0.2.1`_
================
**Date**: August 28, 2019

* API client

  * Version sent in ``User-Agent`` header.
  * Raise ``RateLimitError`` on 429 response.

* CLI

  * Colored output.
  * Add ``-i / --input`` option.


Version `0.2.0`_
================
**Date**: August 21, 2019

* Complete codebase refactoring.


.. _`0.2.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/df4af7c392c50a5a0ebb5d761d7c67de6208c2c1...v0.2.0
.. _`0.2.1`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.2.0...v0.2.1
.. _`0.2.2`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.2.1...v0.2.2
.. _`0.3.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.2.2...v0.3.0
.. _`0.4.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.3.0...0.4.0
.. _`0.4.1`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.4.0...0.4.1
.. _`0.5.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.4.1...0.5.0
.. _`0.6.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.5.0...0.6.0
.. _`0.7.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.6.0...0.7.0
.. _`0.8.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.7.0...0.8.0
.. _`0.9.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.8.0...0.9.0
.. _`0.9.1`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.9.0...0.9.1
.. _`1.0.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.9.1...1.0.0
.. _`1.1.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v1.0.0...1.1.0
.. _`1.2.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v1.1.0...1.2.0
.. _`1.2.1`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v1.2.0...1.2.1
.. _`1.3.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v1.2.1...1.3.0
.. _`2.0.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v1.3.0...HEAD
.. _`2.0.1`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v2.0.0...2.0.1
.. _`2.1.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v2.0.1...2.1.0

            

Raw data

            {
    "_id": null,
    "home_page": "https://greynoise.io/",
    "name": "greynoise",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.0, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*",
    "maintainer_email": "",
    "keywords": "internet,scanning,threat intelligence,security",
    "author": "GreyNoise Intelligence",
    "author_email": "hello@greynoise.io",
    "download_url": "https://files.pythonhosted.org/packages/c5/b5/e20a0f6ca93b790fe7051ffb36bb27d7af1e10fcd6590714e8bd40c5d7f1/greynoise-2.1.0.tar.gz",
    "platform": null,
    "description": "================\nPython GreyNoise\n================\n\n.. image:: https://circleci.com/gh/GreyNoise-Intelligence/pygreynoise.svg?style=shield\n    :target: https://circleci.com/gh/GreyNoise-Intelligence/pygreynoise\n\n.. image:: https://sonarcloud.io/api/project_badges/measure?project=GreyNoise-Intelligence_pygreynoise&metric=coverage\n    :target: https://sonarcloud.io/dashboard?id=GreyNoise-Intelligence_pygreynoise\n\n.. image:: https://readthedocs.org/projects/greynoise/badge/?version=latest\n    :target: http://greynoise.readthedocs.io/en/latest/?badge=latest\n\n.. image:: https://badge.fury.io/py/greynoise.svg\n    :target: https://badge.fury.io/py/greynoise\n\n.. image:: https://img.shields.io/badge/License-MIT-yellow.svg\n    :target: https://opensource.org/licenses/MIT\n\n.. image:: https://quay.io/repository/greynoiseintel/pygreynoise/status\n    :target: https://quay.io/repository/greynoiseintel/pygreynoise\n\nThis is an abstract python library built on top of the `GreyNoise`_ service. It is preferred that users use this library when implementing integrations or plan to use GreyNoise within their code. The library includes a small client to interact with the API.\n\n.. _GreyNoise: https://greynoise.io/\n\nDocumentation\n=============\nDocumentation is available here: `Documentation`_\n\n.. _Documentation: https://developer.greynoise.io/docs/libraries-sample-code\n\nQuick Start\n===========\n**Install the library**:\n\n``pip install greynoise`` or ``python setup.py install``\n\n**Save your configuration**:\n\n``greynoise setup --api-key <your-API-key>``\n\nVersioning\n==========\nThis python package follows semantic versioning. According to this:\n\n* We will NEVER push a breaking change without a major version release.\n* We will only add new features and/or bug fixes with minor version releases.\n* We will only do bug fixes for patch version release.\n\nAs such, we recommend you pin the dependency on this SDK to only allow minor version changes at most:\n\n::\n\n    # allow patch version increments\n    greynoise~=1.4.0\n\n    # allow minor version increments\n    greynoise~=1.4\n\n\nUsage\n=====\n::\n\n    Usage: greynoise [OPTIONS] COMMAND [ARGS]...\n\n      GreyNoise CLI.\n\n    Options:\n      -h, --help  Show this message and exit.\n\n    Commands:\n      account         View information about your GreyNoise account.\n      alerts          List, create, delete, and manage your GreyNoise alerts.\n      analyze         Analyze the IP addresses in a log file, stdin, etc.\n      feedback        Send feedback directly to the GreyNoise team.\n      filter          Filter the noise from a log file, stdin, etc.\n      help            Show this message and exit.\n      interesting     Report one or more IP addresses as \"interesting\".\n      ip              Query GreyNoise for all information on a given IP.\n      ip-multi        Perform Context lookup for multiple IPs at once.\n      query           Run a GNQL (GreyNoise Query Language) query.\n      quick           Quickly check whether or not one or many IPs are \"noise\".\n      repl            Start an interactive shell.\n      riot            Query GreyNoise IP to see if it is in the RIOT dataset.\n      setup           Configure API key.\n      signature       Submit an IDS signature to GreyNoise to be deployed to...\n      similar         Query GreyNoise IP to identify Similar IPs.\n      stats           Get aggregate stats from a given GNQL query.\n      timeline        Query GreyNoise IP to identify Similar IPs.\n      timelinehourly  Query GreyNoise IP to identify Similar IPs.\n      version         Get version and OS information for your GreyNoise...\n\n\n\n\n=========\nChangelog\n=========\n\nVersion `2.1.0`_\n================\n**Date**: February 07, 2024\n\n* API client:\n\n  * None\n\n* CLI:\n\n  * Fixed stats command display to show correct countries\n  * Fixed similar command to handle non-noise IP response\n\n* Dependencies:\n\n  * Updated requests to version 2.31.0\n  * Updated cachetools to version 5.3.1\n  * Removed ipaddress as a required package\n\nVersion `2.0.1`_\n================\n**Date**: April 14, 2023\n\n* API client:\n\n  * Updated timeline commands to support 90 day lookback period\n\n* CLI:\n\n  * Updated timeline commands to support 90 day lookback period\n\n* Dependencies:\n\n  * Updated ansimarkup to version 1.5.0\n  * Updated dict2xml to version 1.7.3\n  * Updated itertools to version 9.1.0\n  * Updated requests to version 2.28.2\n\nVersion `2.0.0`_\n================\n**Date**: February 15, 2023\n\n* BREAKING CHANGE:\n\n  * Removed support for python 3.5\n\n* API client:\n\n  * Added `similar` command to support IP Similarity lookups\n  * Added `timeline` command to support IP Time Series Single Attribute lookups\n  * Added `timelinehourly` command to support IP Time Series Hourly Summary lookups\n  * Added `timelinedaily` command to support IP Time Series Daily Summary lookups\n  * Added `exclude_raw` parameter to query command to reduce issues with default behavior in integrations\n\n* CLI:\n\n  * Added `similar` command to support IP Similarity lookups\n  * Added `timeline` command to support IP Time Series Single Attribute lookups\n  * Added `timelinehourly` command to support IP Time Series Hourly Summary lookups\n  * Added `timelinedaily` command to support IP Time Series Hourly Summary lookups\n\n* Dependencies:\n\n  * Updated dict2xml to version 1.7.2\n  * Updated colorama to version 0.4.6\n  * Updated cachetools to version 5.3.0\n\nVersion `1.3.0`_\n================\n**Date**: September 07, 2022\n\n* API client:\n\n  * Rework logging to remove structlog predefined logging to follow best practices\n  * Update the `quick` command to use a POST API request instead of a GET API request\n  * Fix bug with `ip_multi` preventing lists of more than 1000 entries from returning correct data\n  * Fix bug with `ip_multi` when cache is disabled not returning correct values\n  * Fix bug with `ip_multi` where `include_invalid` parameter was not working\n\n* CLI:\n\n  * None\n\n* Dependencies:\n\n  * Updated Click to 8.1.3\n  * Updated colorama to 0.4.5\n  * Updated jinja2 to 3.1.2\n  * Updated more-itertools to 8.14.0\n  * Update requests to 2.28.1\n  * Removed structlog\n\nVersion `1.2.1`_\n================\n**Date**: June 03, 2022\n\n* API client:\n\n  * None\n\n* CLI:\n\n  * Add missing HASSH values to output for IP and QUERY commands\n  * Remove unused PCAP command\n\n* Dependencies:\n\n  * Update jinja to 3.1.0\n  * Update dict2xml to 1.7.1\n  * Update Click to 8.1.2\n  * Update more-itertools to 8.13.0\n  * Update cachetools to 5.2.0\n\nVersion `1.2.0`_\n================\n**Date**: September 03, 2021\n\n* API client:\n\n  * Add ip_multi command to support bulk IP Context lookups\n  * Fix issue with \"include_invalid\" option on quick command failing with \"riot\" key missing\n\n* CLI:\n\n  * Add ip-multi command to support bulk IP Context lookups\n  * Add support for comma separated IP lists for ip-multi and quick commands\n  * Add size and scroll arguments for query and stats command\n  * Update quick command to not error completely when non-routable IP is passed as an input in a list\n\n* Dependencies:\n\n  * Added colorama dependency\n  * Update Click to 8.0.3\n  * Updated cachetools to 5.0.0\n  * Updated jinja to 3.0.3\n  * Updated more-itertools to 8.12.0\n  * Updated requests to 2.27.1\n  * Updated structlog to 21.5.0\n\nVersion `1.1.0`_\n================\n**Date**: June 23, 2021\n\n* API client:\n\n  * Update filter command to use new quick endpoint with noise/riot updates\n  * Update analyze command to use new quick endpoint with noise/riot updates\n\n* CLI:\n\n  * Update quick command to handle quick endpoint noise/riot updates\n  * Add support for RIOT trust_level output\n\n* Dependencies:\n\n  * Updated Click to 8.0.1\n\nVersion `1.0.0`_\n================\n**Date**: June 02, 2021\n\n*** Removed Support for Python2 - BREAKING CHANGE ***\n\n* API client:\n\n  * Fixed error handling for both `error` and `message` responses\n  * Implemented ipaddress package for IP validation to prevent non-routable IP addresses from being\n    sent for query to the API\n\n* CLI:\n\n  * Updated warning messages to help identify invalid vs non-routable IPs\n\n* Dependencies:\n\n  * Updated cachetools to 4.2.2\n  * Updated six to 1.16.0\n  * Updated jinja2 to 3.0.1 for py36 and py37\n  * Updated click-repl to 0.2.0\n  * Updated more-itertools to 8.8.0\n\nVersion `0.9.1`_\n================\n**Date**: May 05, 2021\n\n* CLI:\n\n  * #465: Fixed error handling on expired API key\n\n* Dependencies:\n\n  * Updated cachetools to 4.2.2\n\nVersion `0.9.0`_\n================\n**Date**: April 21, 2021\n\n* API client:\n\n  * Removed rouge debug statement from analysis command\n\n* CLI:\n\n  * Fixed query command to display text output for queries with more than 10k results\n    * Query now limits results to 10 on the text output\n\nVersion `0.8.0`_\n================\n**Date**: March 26, 2021\n\n* API client:\n\n  * Added support for Community API\n  * Added information about \"integration_name\" parameter to docs\n  * **BREAKING CHANGE** Updated test_connection() to use /ping endpoint and return API response\n    message and exception instead of string values\n\n* CLI:\n\n  * Added support for Community API\n  * Updated Analyze command to include RIOT\n  * Changed default behavior to no longer use `query`.  Invalid commands return error now\n\n* Dependencies:\n\n  * Updated cachetools to 4.2.1\n  * Updated jinja2 to 2.11.3\n  * Updated more-itertools to 8.7.0\n  * Update structlog to 21.1.0\n\n\nVersion `0.7.0`_\n================\n**Date**: January 07, 2021\n\n* API client:\n\n  * Add \"include_invalid\" option to QUICK lookup to return invalid IPs as part of the JSON response\n  * Added support for new /riot endpoint\n  * Updated logic in quick to better handle non-list format input ('ip_1,ip_2')instead of\n    ['ip_1','ip_2']\n  * Added ability to configure CACHE TTL and CACHE MAX SIZE instead of only using hardcoded defaults\n\n* CLI:\n\n  * Added support for new riot command\n  * Updated json_formatter for query commands to return data only as New Line Delimited JSON\n\n* Dependencies:\n\n  * Updated sphinx to 3.4.0\n  * Updated structlog to 20.2.0 for python 3.6 and 3.7\n\nVersion `0.6.0`_\n================\n**Date**: December 21, 2020\n\n* API client:\n\n  * Added ``test_connection`` method to allow for integrations to validate connection and API key\n\n* CLI:\n\n  * Added spoofable and CVE outputs where possible\n\n* Both API client and CLI:\n\n  * Fix IP_Validation method bug which was preventing valid IPs from being submitted\n\nVersion `0.5.0`_\n================\n**Date**: December 16, 2020\n\n* API client:\n\n  * add ``metadata`` method.\n  * replace `dicttoxml` with `dict2xml` for license-compatibility.\n\n* Both API client and CLI:\n\n  * Update dependencies to the latest version\n  * Add support for PROXY usage\n  * Update the IP validator to ensure better validation\n\nVersion `0.4.1`_\n================\n**Date**: January 3, 2020\n\n* API client:\n\n  * add ``spoofable`` field.\n\nVersion `0.4.0`_\n================\n**Date**: November 18, 2019\n\n* API client:\n\n  * add ``interesting`` method.\n  * add ``filter`` method.\n  * add ``analyze`` method.\n  * add ``scroll`` and ``size`` parameters to ``query`` method.\n  * add ``api_server`` and ``integration_name`` parameters to ``__init__`` method.\n\n* CLI:\n\n  * add ``interesting`` subcommand.\n  * add ``filter`` subcommand.\n  * add ``analyze`` subcommand.\n  * add ``api_server`` option to setup subcommand.\n\n* Both API client and CLI:\n  * use structlog logging library.\n\nVersion `0.3.0`_\n================\n**Date**: September 06, 2019\n\n* API client:\n\n  * rename API client methods to match CLI command names.\n  * use LRU cache for IP context and quick check calls.\n\n* CLI:\n\n  * add help, repl and version subcommands.\n  * global options moved to those subcommands where they apply.\n  * make request timeout configurable.\n\n\nVersion `0.2.2`_\n================\n**Date**: August 28, 2019\n\n* CLI:\n\n  * fix ``setup`` subcommand when configuration directory doesn't exist.\n\n\nVersion `0.2.1`_\n================\n**Date**: August 28, 2019\n\n* API client\n\n  * Version sent in ``User-Agent`` header.\n  * Raise ``RateLimitError`` on 429 response.\n\n* CLI\n\n  * Colored output.\n  * Add ``-i / --input`` option.\n\n\nVersion `0.2.0`_\n================\n**Date**: August 21, 2019\n\n* Complete codebase refactoring.\n\n\n.. _`0.2.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/df4af7c392c50a5a0ebb5d761d7c67de6208c2c1...v0.2.0\n.. _`0.2.1`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.2.0...v0.2.1\n.. _`0.2.2`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.2.1...v0.2.2\n.. _`0.3.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.2.2...v0.3.0\n.. _`0.4.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.3.0...0.4.0\n.. _`0.4.1`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.4.0...0.4.1\n.. _`0.5.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.4.1...0.5.0\n.. _`0.6.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.5.0...0.6.0\n.. _`0.7.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.6.0...0.7.0\n.. _`0.8.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.7.0...0.8.0\n.. _`0.9.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.8.0...0.9.0\n.. _`0.9.1`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.9.0...0.9.1\n.. _`1.0.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v0.9.1...1.0.0\n.. _`1.1.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v1.0.0...1.1.0\n.. _`1.2.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v1.1.0...1.2.0\n.. _`1.2.1`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v1.2.0...1.2.1\n.. _`1.3.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v1.2.1...1.3.0\n.. _`2.0.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v1.3.0...HEAD\n.. _`2.0.1`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v2.0.0...2.0.1\n.. _`2.1.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v2.0.1...2.1.0\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Abstraction to interact with GreyNoise API.",
    "version": "2.1.0",
    "project_urls": {
        "Download": "https://github.com/GreyNoise-Intelligence/pygreynoise",
        "Homepage": "https://greynoise.io/"
    },
    "split_keywords": [
        "internet",
        "scanning",
        "threat intelligence",
        "security"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a805a3343bbb880fb452f62c838789cb28563efdf6cc88184659eeb05433d148",
                "md5": "7c646bd80943b3ce26f6520e49813845",
                "sha256": "7cf01674daae94b19ad7a73fa25c414d09eb4ba58b65ceec82d6cf61c9890ab6"
            },
            "downloads": -1,
            "filename": "greynoise-2.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7c646bd80943b3ce26f6520e49813845",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.0, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*",
            "size": 34641,
            "upload_time": "2024-02-07T21:19:54",
            "upload_time_iso_8601": "2024-02-07T21:19:54.357397Z",
            "url": "https://files.pythonhosted.org/packages/a8/05/a3343bbb880fb452f62c838789cb28563efdf6cc88184659eeb05433d148/greynoise-2.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c5b5e20a0f6ca93b790fe7051ffb36bb27d7af1e10fcd6590714e8bd40c5d7f1",
                "md5": "62bef2b75880b595ace15e0850e92429",
                "sha256": "9a9b2999b57de3b6ab2244ffe8a90dc3b9caae8378f6d1144b3c1406ca8b11e4"
            },
            "downloads": -1,
            "filename": "greynoise-2.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "62bef2b75880b595ace15e0850e92429",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.0, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*",
            "size": 34137,
            "upload_time": "2024-02-07T21:19:55",
            "upload_time_iso_8601": "2024-02-07T21:19:55.990559Z",
            "url": "https://files.pythonhosted.org/packages/c5/b5/e20a0f6ca93b790fe7051ffb36bb27d7af1e10fcd6590714e8bd40c5d7f1/greynoise-2.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-07 21:19:55",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "GreyNoise-Intelligence",
    "github_project": "pygreynoise",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "circle": true,
    "tox": true,
    "lcname": "greynoise"
}
        
Elapsed time: 0.18943s