What is my IP address?

{{ .IP }}

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

CLI examples:

$ curl ifconfig.co
{{ .IP }}

$ http -b ifconfig.co
{{ .IP }}

$ wget -qO- ifconfig.co
{{ .IP }}

$ fetch -qo- https://ifconfig.co
{{ .IP }}
{{ if .IsLookupCountryEnabled }}

Country lookup:

$ http ifconfig.co/country
{{ .Country }}
{{ end }} {{ if .IsLookupCityEnabled }}

City lookup:

$ http ifconfig.co/city
{{ .City }}
{{ end }}

JSON output:

$ http ifconfig.co/json
{ {{ if .IsLookupCityEnabled }}
    "city": "{{ .City }}",{{ end }}{{ if .IsLookupCountryEnabled }}
    "country": "{{ .Country }}",{{ end }}{{ if .IsLookupAddrEnabled }}
    "hostname": "{{ .Hostname }}",{{ end }}
    "ip": "{{ .IP }}",
    "ip_decimal": {{ .IPDecimal }}
}

Setting the Accept header to application/json also works.

Plain output:

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

$ http ifconfig.co/ip
{{ .IP }}
{{ if .IsLookupPortEnabled }}

Testing port connectivity:

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

FAQ

Is using this service from automated scripts/tools permitted?

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.

Is IPv6 supported?

IPv6 is currently not supported. You are however free to host your own service with IPv6 support, see next question.

Can I run my own service?

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