Skip to content

jongwoo328/cloudip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cloudip

English | 한국어

cloudip is a CLI tool that identifies which cloud provider (e.g., AWS, GCP, Azure, etc.) 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. The current version supports only AWS and GCP, with additional cloud providers planned for future updates.

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 a formatted with the --format option.

Installation

Arch Linux

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

Version Check

cloudip version

Output:

0.5.0

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

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

The output format can be specified using the --format option. The following formats are supported:

  • text (default)
  • table
  • json

text

Text is the default output format.

cloudip 54.230.176.25
cloudip 54.230.176.25 --format=text

Output:

54.230.176.25 aws

Use --header option to display the header.

cloudip 54.230.176.25 --header

Output:

IP Provider
54.230.176.25 aws

table

cloudip 54.230.176.25 --format=table

Output:

54.230.176.25   aws

--header option can be used with the table format.

cloudip 54.230.176.25 --format=table --header

Output:

IP              PROVIDER 
54.230.176.25   aws

json

cloudip 54.230.176.25 --format=json

Output:

[{"IP":"54.230.176.25","Provider":"aws"}]

You can use with jq to format the JSON output.

cloudip 54.230.176.25 --format=json | jq

Output:

[
  {
    "IP": "54.230.176.25",
    "Provider": "aws"
  }
]

csv

csv format is not supported --format option.

You can get output in CSV format using --format=text and --delimiter=',' options. If you want to get result with header, use --header option.

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

Output:

IP,Provider
54.230.176.25,aws

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.20 or later is recommended).
  2. Use the make command to build the project:
    git clone https://github.com/jongwoo328/cloudip.git
    go mod tidy
    cd cloudip
    make build -j
  3. The binary will be generated in the build/ directory.

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.