What is My External IP all about?

Sometimes, when looking at it from the outside of the network, the IP address of a device seems to be different from the one assigned in the original (sub)network. This is due some mechanisms such as NAT.

My External IP displays the IP address of the device as it seems from the outside (hence external).

News / New Features

2016-07-10 Added: Show RIPE information about the IP number.

2015-10-30 Added: FreeBSD fetch sample.

2015-08-03 Added: AutoHotkey sample.

2015-02-23 Added: Erlang and Elixir samples

2015-01-07 Enabled: ipv4.myexternalip.com and ipv6.myexternalip.com.

I switched on ipv4.myexternalip.com which answers only to requests coming in via IPv4. ipv6.myexternalip.com will do the same for IPv6. This might come in handy when you test your setup or toy around with IPv6.

Flattr: I created a flattr-account and start accepting donations (small, big, does not matter). If you want to donate by other means: contact me.

Throttle: some folks out there have either running curl in a while-loop or a crazy understanding of how often their external ip changes or they need some tool to help keeping a line busy. Whatever the case might be: 20+ requests / second is way too often and thus I decided to throttle the answer a little bit. The good folks among you won't hardly notice it at all, the .. strange .. folks might.

2014-03-11 Introducing access rate

Usually this service runs very low profile and without much handholding. Recently I watched at the load and then on some logs and on some more logs and on some tcpdumps: One machine out there wanted to know it's IP at the rate of ~ 100 times a second. Heart-warming. Especially when the IP does not change at all. And especially when the user agent looks like "/tmp/.botc3 / 82d7f55ef6a49ab4e49d89caa5ea10ba"

So, the new access rate for everyone is around 1/s.

And you, young fella at 118.175.31.x ... you are banned! :)

2013-09-29 activated IPv6

'My External IP' can be reached via IPv6 now as well.

With IPv6 the whole NATting is kind of pointless and most devices will have a 'real' IP address with IPv6 but you still can use myexternalip.com to check if your network works as expected.

Looks like you are using IPv4.

2013-08-16 added 'My-External-Ip' header

Whenever you HEAD http://myexternalip.com, you will find your IP will be there (hint: in the 'my-external-ip' header)!

How to use My External IP - API

So, how to use this site in your environment (other than just surfing it with a browser)?

Rate limit: if you exceed the rate limit of 30 requests/minute, you will receive status code 429 If you continue to exceed that limit and start to annoy me you will get banned at the IP filter level. Sorry, but I do not see the need to retrieve the IP more than maybe once every minute, 30 requests per minute is good will on my behalf.

API-Endpoints:

GET /raw

Plain IP address

GET /json

IP address in JSON format

GET /json?jsonp=callback

IP address as JSONP-ready script ("function call"). 'callback' must fit the following constraints:

RAW

HEAD

WGET

GNU Wget is a free software package for retrieving files using HTTP, HTTPS and FTP, the most widely-used Internet protocols. It is a non-interactive commandline tool, so it may easily be called from scripts, cron jobs, terminals without X-Windows support, etc.

FETCH

NETCAT

NETCAT

often cited as the "Swiss Army Knife for TCP/IP" you can use netcat to obtain your external ip. this approach also works with netcat-alikes such as socat or even with telnet:

$> echo -ne "GET /raw HTTP/1.1\r\n\r\n" | \
nc myexternalip.com 80

NETCAT, HEAD method

just like the regular netcat version, just ask the server to deliver just the HEAD-information

$> echo -ne "HEAD / HTTP/1.1\r\n\r\n" | \
nc myexternalip.com 80

Microsoft Windows

Powershell

Powershell is the replacement for the 'old' cmd.exe, it is a builtin of the Windows OS since Windows7 and Windows Server 2008 R2. It is also available as an additional feature for WindowsXP, WindowsVista and Windows Server.