In the project I am working on now I was in need of communicating over the internet to my ESP8266 module.
Having configured my router to do the corresponding port-forwarding, all that was left was finding the public IP of the router itself. In the most general case this value is not known in advance, so I created some code to help an ESP8266 find its own
public IP address and have it published on a Thingspeak channel.
As usual, my work is based on other people's projects, so I don't take all the credit for the job done. I used Sprite_tm HTTPD example and others as well, so acknowledgments go to all whom may have been involved.
Needless to say, this code may still contain some errors, and is far from being perfect in all senses
Questions, comments are welcome.
Have fun!
https://github.com/hdrut/find_public_ip