What is my IP address?

{{ .IP }}

Multiple command line HTTP clients are supported, including curl, httpie, GNU Wget and fetch.

CLI examples

$ curl {{ .Host }}
{{ .IP }}

$ http -b {{ .Host }}
{{ .IP }}

$ wget -qO- {{ .Host }}
{{ .IP }}

$ fetch -qo- https://{{ .Host }}
{{ .IP }}

$ bat -print=b {{ .Host }}/ip
{{ .IP }}
{{ if .Country }}

Country lookup

$ http {{ .Host }}/country
{{ .Country }}

$ http {{ .Host }}/country-iso
{{ .CountryISO }}
{{ end }} {{ if .City }}

City lookup

$ http {{ .Host }}/city
{{ .City }}
{{ end }}

JSON output

$ http {{ .Host }}/json
{{ .JSON }}

Setting the Accept: application/json header also works as expected.

Plain output

Always returns the IP address including a trailing newline, regardless of user agent.

$ http {{ .Host }}/ip
{{ .IP }}
{{ if .Port }}

Port testing

$ http {{ .Host }}/port/8080
{
  "ip": "{{ .IP }}",
  "port": 8080,
  "reachable": false
}
{{ end }}

FAQ

How do I force IPv4 or IPv6 lookup?

IPv4 or IPv6 lookup can be forced by using the v4 and v6 subdomains.

Is automated use of this service permitted?

Yes, as long as the rate limit is respected. The rate limit is in place to ensure a fair service for all.

Please limit automated requests to 1 request per minute. No guarantee is made for requests that exceed this limit. They may be rate-limited, with a 429 status code, or dropped entirely.

Can I run my own service?

Yes, the source code and documentation is available on GitHub.