Get your esp8266 to do a http.get to your remote server. The IP of the request on your remote server will be your current public IP address.
Anternatively, you can use a Dynamic DNS service, like https://www.noip.com/ . They offer a free service - although you have to update every month. This means that you can use a DNS name and this name will get updated to you current IP.
You will also need to port forward on your router so that a request on your router gets forwarded to the esp8266. As @Ollie suggested on another thread - it's best to give your esp8266 a static IP based on the MAC address so you know what address to forward too.