~nickbp/iplookup

Efficient public IP retrieval

cfc38c4 Try setting up basic build CI

~nickbp pushed to ~nickbp/iplookup git

6 months ago

edbc4df Try setting up basic build CI

~nickbp pushed to ~nickbp/iplookup git

6 months ago

#iplookup

Prints your public IP address to stdout by querying a specified STUN server.

Useful for finding your public IP when behind a NAT or firewall. Uses an open standard that's faster and arguably safer than querying some rando's "what is my ip" website.

#Quickstart

Compile the crate:

$ cargo install iplookup
$ iplookup stun.l.google.com:19302
123.456.789.123

Or use the prebuilt amd64/arm64 docker image:

$ docker run nickbp/iplookup:TAG /iplookup stun.l.google.com:19302
123.456.789.123

#Build

$ git clone https://git.sr.ht/~nickbp/iplookup
$ cd iplookup
$ cargo build --release
$ ./target/release/iplookup stun.l.google.com:19302
123.456.789.123

Note: Building iplookup requires Rust 1.39.0 or later.

#Features

  • To simplify scripting, the only thing written to stdout is the resulting public IP. Anything else goes to stderr.
  • Automatic retries with exponential backoff, waiting a maximum of 31s for a response.
  • Prints additional information about the request and response if the DEBUG environment variable is non-empty.

#License

This project is licensed under GPL 3 or any later version.