Skip to content

jongwoo328/cloudip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cloudip

English | 한국어

cloudip is a CLI tool that identifies which cloud provider manages the given IP address. You can input a single or multiple IPs, and the results can be displayed in various formats, such as table, json.

🚨 Warning 🚨

This project is currently under development, and features and options may change without notice until the official release.

Table of Contents

Features

  • Single IP Check: Identify which cloud provider owns a specific IP.
  • Multiple IP Check: Check multiple IP addresses at once.
  • IPv4 and IPv6 Support: Supports both IPv4 and IPv6 addresses.
  • Format Output: Display results in various formats using the --format option.

Currently Supported Cloud Providers

  • AWS: Amazon Web Services
  • GCP: Google Cloud Platform
  • Azure: Microsoft Azure
  • Cloudflare: Cloudflare, Inc.

Installation

Homebrew (macOS only)

brew tap jongwoo328/cloudip
brew trust --tap jongwoo328/cloudip
brew install cloudip

Arch Linux

Note: The AUR package is no longer maintained.

cloudip is available as a package on the AUR. You can install it using an AUR helper (e.g., yay):

yay -S cloudip

Binary Download

Download the latest binary from the Releases page.

Supported Platforms:

  • Linux (x86)
  • Linux (x86_64)
  • Linux (ARM64)
  • macOS (x86_64)
  • macOS (ARM64)

Usage

Basic Usage

  • Version Check

    cloudip version

    Output:

    0.10.1
    
  • Single IP Check

    cloudip 54.230.176.25

    Output:

    54.230.176.25 aws
    
  • Multiple IP Check

    cloudip 54.230.176.25 54.230.176.30 54.230.176.45

    Output:

    54.230.176.25 aws
    54.230.176.30 aws
    54.230.176.45 aws
    

Output Options

  • Custom Delimiters

    You can specify a custom delimiter for the output. The default delimiter is a space.

    • Comma (,) Delimited

      cloudip 54.230.176.25 --delimiter=','

      Output:

      54.230.176.25,aws
      
    • Tab (\t) Delimited

      cloudip 54.230.176.25 --delimiter=$'\t'

      Output:

      54.230.176.25   aws
      

    and any other custom delimiters can be used.

  • Output Formats

    Use the --format option to specify the output format. Supported formats include:

    • text (default): Displays results as simple text.

      cloudip 54.230.176.25 --format=text

      Output:

      54.230.176.25 aws
      

      Use the --header option to include a header row.

      cloudip 54.230.176.25 --format=text --header

      Output:

      IP Provider
      54.230.176.25 aws
      
    • table: Displays results in a table format. Columns are padded with spaces for alignment, making it easy to read. The header is always displayed.

      cloudip 54.230.176.25 --format=table

      Output:

      IP            Provider
      54.230.176.25 aws
      

      The --delimiter option can also be used with the table format.

      cloudip 54.230.176.25 --format=table --delimiter=' | '

      Output:

      IP            | Provider
      54.230.176.25 | aws
      
    • json: Outputs results in JSON format, suitable for parsing with tools like jq.

      cloudip 54.230.176.25 --format=json

      Output:

      [{"IP":"54.230.176.25","Provider":"aws"}]
    • csv: This tool does not have a direct --format=csv option. However, you can produce CSV-like output by combining --format=text with --delimiter=','. To include a header row, also add the --header option.

      cloudip 54.230.176.25 --format=text --delimiter=',' --header

      Output:

      IP,Provider
      54.230.176.25,aws

Other Options

  • Verbose Output You can use the --verbose, -v option to display detailed information.
    cloudip --verbose 54.230.176.25
    Output:
    AWS IP ranges file not exists.
    Downloading AWS IP ranges...
    AWS IP ranges updated [2024-12-27 04:12:30]
    54.230.176.25 aws
    

Build from Source

  1. Ensure that Go is installed (Go v1.25 or later is needed).
  2. Clone and build the project:
    git clone https://github.com/jongwoo328/cloudip.git
    cd cloudip
    go mod tidy
    go build -o build/cloudip --ldflags '-X cloudip/cmd.Version=0.10.1'
  3. The binary cloudip will be generated in the build/ directory.

Note for Maintainers: For release builds, use make build which uses GoReleaser for cross-platform compilation and distribution.

Development and Testing

Testing

Run the test suite using the following commands:

# Run all tests
make test

# Run tests with verbose output
make test-verbose

# Run tests with coverage report
make test-coverage

# Run benchmark tests
make test-bench

License

This project is licensed under the Apache License 2.0.

You may use this project in compliance with the terms and conditions of the Apache 2.0 License. For more details, see the LICENSE file or visit the official Apache License website.

About

CLI tool to identify whether an IP address belongs to AWS, GCP, or Azure.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors