An open API service indexing awesome lists of open source software.

https://github.com/dalance/gip

a command-line tool to get global IP address
https://github.com/dalance/gip

command-line-tool ipv4 ipv6 rust rust-library

Last synced: about 1 year ago
JSON representation

a command-line tool to get global IP address

Awesome Lists containing this project

README

          

# gip

[![Actions Status](https://github.com/dalance/gip/workflows/Regression/badge.svg)](https://github.com/dalance/gip/actions)
[![Crates.io](https://img.shields.io/crates/v/gip.svg)](https://crates.io/crates/gip)
[![Docs.rs](https://docs.rs/gip/badge.svg)](https://docs.rs/gip)

**gip** is a command-line tool and Rust library to check global IP address.

## Install
Download from [release page](https://github.com/dalance/gip/releases/latest), and extract to the directory in PATH.

Alternatively you can install by [cargo](https://crates.io).

```
cargo install gip
```

## Usage

```
gip 0.3.2-pre
dalance
A library and command-line frontend to check global IP address

USAGE:
gip [FLAGS] [OPTIONS]

FLAGS:
-4, --v4 IPv4 address ( default )
-6, --v6 IPv6 address
-p, --plane Show by plane text ( default )
-s, --string Show by plane text without line break
-j, --json Show by JSON
-l, --list Show provider list
-v, --verbose Show verbose message
-h, --help Prints help information
-V, --version Prints version information

OPTIONS:
--timeout Timeout per each provider by milliseconds [default: 1000]
--json-key Key string of JSON format [default: ip]
--proxy Proxy for HTTP access ( "host:port" )
```

## Providers
Currently built-in service providers are the followings.

- [ipv6-test.com](http://ipv6-test.com) ( v4 /v6 )
- [ident.me/tnedi.me](http://api.ident.me) ( v4 / v6 )
- [test-ipv6.com](http://test-ipv6.com) ( v4 / v6 )
- [opendns.com](https://www.opendns.com) ( v4 / v6 )
- [akamai.com](https://developer.akamai.com) ( v4 / v6 )

If you want to change providers, providers can be set by `$HOME/.gip.toml` like the following.

```
[[providers]]
name = "ident.me"
ptype = "IPv4"
protocol = "HttpPlane"
url = "http://v4.ident.me/"
key = []

[[providers]]
name = "test-ipv6"
ptype = "IPv4"
protocol = "HttpJson"
url = "http://ipv4.test-ipv6.com/ip/"
key = ["ip"]
padding = "callback"

[[providers]]
name = "opendns.com"
ptype = "IPv4"
protocol = "Dns"
url = "myip.opendns.com@resolver1.opendns.com"
key = []
```

## Library

**gip** is provided as Rust library.

```Cargo.toml
gip = "0.7.1"
```

[Documentation](https://docs.rs/gip)

## License

Licensed under either of

* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)

at your option.

### Contribution

Unless you explicitly state otherwise, any contribution intentionally
submitted for inclusion in the work by you, as defined in the Apache-2.0
license, shall be dual licensed as above, without any additional terms or
conditions.