Skip to main content

Chickadee

Yet another GeoIP resolution tool.

         _          _
        ('<        >')
       \(_)________( \
        (___________)\\        _____ _     _      _             _
           (     )     \      / ____| |   (_)    | |           | |
            |   |            | |    | |__  _  ___| | ____ _  __| | ___  ___
            |   |            | |    | '_ \| |/ __| |/ / _` |/ _` |/ _ \/ _ \
            |   |            | |____| | | | | (__|   < (_| | (_| |  __/  __/
           _|   |_            \_____|_| |_|_|\___|_|\_\__,_|\__,_|\___|\___|
          (_______)

Supported GeoIP back-ends:

  • http://ip-api.com/ - Free to query up to 150 requests per minute. Unlimited API keys available for purchase.

Installation

You may install Chickadee on your platform using pip install chickadee (you may need to use pip3 depending on your system configuration). Please ensure you are using Python 3

You may also install via the source code as detailed below.

macOS and Linux

Requirements:

  • Python 3+, installed on your path
  • Virtualenv (pip3 install virtualenv)
  1. Clone the git repo: git clone https://github.com/chapinb/chickadee.git
  2. Create your virtual environment virtualenv -p python3 venv3 and activate it (source venv3/bin/activate)
  3. Install dependencies: pip install .
  4. Run chickadee --help to get started.

Windows

Requirements:

  • Python 3+, installed on your path
  • Virtualenv (pip.exe install virtualenv)
  1. Clone the git repo: git clone https://github.com/chapinb/chickadee.git
  2. Create your virtual environment virtualenv -p python3 venv3 and activate it (source venv3/Scripts/activate.bat)
  3. Install dependencies: pip install .
  4. Run chickadee --help to get started.

Usage

The below shows the help information for using Chickadee. It can accept any of the below formats:

  • Loose IP addresses (either a single IP or a comma separated list)
  • IPv4 or IPv6
  • A path to a plaintext file containing IP addresses (even if they are among other data)
  • A path to a gzip'd plaintext file (not an archive of multiple plaintext files)
  • A path to a folder containing plaintext or gzip'd plaintext data
$ chickadee --help
usage: chickadee [-h] [-f F] [-t {json,jsonl,csv}] [-w FILENAME.JSON] data

Sample Argparse

positional arguments:
  data                 Either an IP address, comma delimited list of IP
                       addresses, or path to a file or folder containing files
                       to check for IP address values. Currently supported
                       file types: plain text (ie logs, csv, json), gzipped
                       plain text

optional arguments:
  -h, --help           show this help message and exit
  -f F                 Comma separated fields to query (default: query,as,org,
                       ispcontinent,country,regionName,city,district,zip,mobil
                       e,proxy,reverse,lat,lon,timezonestatus,message)
  -t {json,jsonl,csv}  Output format (default: jsonl)
  -w FILENAME.JSON     Path to file to write output (default:
                       <_io.TextIOWrapper name='<stdout>' mode='w'
                       encoding='UTF-8'>)

Built by Chapin Bryce, v.20190907

Example

To resolve 8.8.8.8 and 1.1.1.1. The jq tool isn't a requirement, but is a great utility for formatting and querying any JSON data.

$ chickadee 8.8.8.8,1.1.1.1 | jq '.'
{
  "as": "AS15169 Google LLC",
  "city": "Ashburn",
  "country": "United States",
  "district": "",
  "lat": 39.0438,
  "lon": -77.4874,
  "mobile": false,
  "org": "Google Inc.",
  "proxy": false,
  "query": "8.8.8.8",
  "regionName": "Virginia",
  "zip": "20149"
}
{
  "as": "AS13335 Cloudflare, Inc.",
  "city": "Sydney",
  "country": "Australia",
  "district": "",
  "lat": -33.8688,
  "lon": 151.209,
  "mobile": false,
  "org": "",
  "proxy": false,
  "query": "1.1.1.1",
  "regionName": "New South Wales",
  "zip": "1001"
}

Example of using the custom fields. Available field names can be found at: http://ip-api.com/docs/api:json

$ chickadee 8.8.8.8,1.1.1.1 -t jsonl -f as,proxy
{"as": "AS15169 Google LLC", "proxy": false}
{"as": "AS13335 Cloudflare, Inc.", "proxy": false}

Contributing

Please create a fork of the repository, make your changes, and submit a pull request for review!

You can always use the issues tab to suggest features and identify bugs.

Metadata

Release files for chickadee 20190907

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for chickadee 20190907
File Size Uploaded
chickadee-20190907.tar.gz 6.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for chickadee 20190907
File Interpreter ABI Platform
chickadee-20190907-py3-none-any.whl Python 3 none any Details

Total release size: 28.5 kB

Release files / chickadee-20190907.tar.gz

Download URL chickadee-20190907.tar.gz
Size 6.9 kB
Tags Source
SHA-256 checksum
How to use checksums
4e3a9fb713562de2432e779a3b2dc0ea413fc109b446c502210631ad899ccb7e
BLAKE2b-256 checksum
How to use checksums
e2918d7d58f61b7e17a5cca6137ed4f54aca043ab0334128b1b42a4589b1ea88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

Release files / chickadee-20190907-py3-none-any.whl

Download URL chickadee-20190907-py3-none-any.whl
Size 21.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a5898bbe43f7fa26093f371e67a3dcafb342e280915c12da9995612647bec194
BLAKE2b-256 checksum
How to use checksums
5565e852f6c04b26b38a705265355de0d29777c8f10be309da40ef12dc7a1f23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page