$ 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 header to application/json also works.
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. 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 response code) or dropped entirely.
Yes, the source code and documentation is available on GitHub.