~nickbp/iplookup

Efficient public IP retrieval
Bump docker base image to bookworm
Bump deps, try reenabling arm64 CI build
Disable failing arm64 CI, simplify image build

refs

main
browse  log 

clone

read-only
https://git.sr.ht/~nickbp/iplookup
read/write
git@git.sr.ht:~nickbp/iplookup

You can also use your local clone with git send-email.

#iplookup

builds.sr.ht status

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 (example tag based on SHA):

$ docker run ghcr.io/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.