$ curl {{ .Host }} {{ .IP }} $ http -b {{ .Host }} {{ .IP }} $ wget -qO- {{ .Host }} {{ .IP }} $ fetch -qo- https://{{ .Host }} {{ .IP }} $ bat -print=b {{ .Host }}/ip {{ .IP }}{{ if .Country }}
$ http {{ .Host }}/country {{ .Country }} $ http {{ .Host }}/country-iso {{ .CountryISO }}{{ end }} {{ if .City }}
$ http {{ .Host }}/city {{ .City }}{{ end }}
$ http {{ .Host }}/json {{ .JSON }}
Setting the Accept: application/json
header also works as expected.
Always returns the IP address including a trailing newline, regardless of user agent.
$ http {{ .Host }}/ip {{ .IP }}{{ if .Port }}
$ http {{ .Host }}/port/8080 { "ip": "{{ .IP }}", "port": 8080, "reachable": false }{{ end }}
IPv4 or IPv6 lookup can be forced by using the v4 and v6 subdomains.
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.
Yes, the source code and documentation is available on GitHub.