$ 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 }} {{ if .ASN }}
$ http ip.alphakilo.eu/asn {{ .ASN }} {{ if .ASNOrg }}
Looks like you're with {{ .ASNOrg }}
{{ end }} {{ 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 }}
As of 2018-07-25 it's no longer possible to force protocol using
the v4 and v6 subdomains. IPv4 or IPv6 still can be forced
by passing the appropiate flag to your client, e.g curl -4
or curl -6
.
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.