I know techb is propably right about troll but i play a long a bit more still. I kind of thought OP talked about local ip, he didn't exactly mention anywhere that he meant puplic ip as far as i can tell. Even though now i think of it, he most propably did meant that.
I personally do not know how someone would write a program that changes his/her public IP address. In the end it would have to run on the device that actually performs the dial in process.
Not sure about this and don't certainly know this area as well as you do techb & RbA(and thanks for the reading btw.), but if one has dynamic puplic ip assigned by isp and he has router/modem with WAN option dhcp release/renew in the routers admin page. In this case dhcp release/renew is for "releasing" your puplic ip and requesting new one from isp's ip pool, right? Yes there is those lease times+stuff. But as simplified speaking it does kind of same trick as turning device off? So basically one could write scraper to he's router/modem's admin page and automate release/renew from there, so that would kind of do it? It's not all around solution ofc. because admin pages are different and i could be totally wrong of this all. But just kind of wanted throw this idea out..